问题标签 [magic-methods]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 将 __call 与静态类一起使用?
__call
静态调用函数时可以使用魔术方法吗?
python - 是否存在 len(someObj) 不调用 someObj 的 __len__ 函数的情况?
有len(someObj)
没有不调用someObj__len__
函数的情况?
我最近用后者替换了前者,以(成功)加快了一些代码的速度。我想确保len(someObj)
在与someObj.__len__()
.
python - 如何在python中隐藏__methods__?
我只是想知道,如何隐藏特殊
python *中的方法?特别是我正在使用带有制表符完成功能的交互式 python 解释器,我只想显示我的模块公开的方法......
谢谢,
/我的/
*(至少来自使用 python shell 的用户)
现在看起来像这样:
我希望它看起来像:
php - PHP 5.3 魔术方法 __invoke
本主题扩展了我何时/应该在 PHP 中使用 __construct()、__get()、__set() 和 __call()? 其中谈到__construct
,__get
和__set
魔术方法。
从 PHP 5.3 开始,有一个新的魔术方法称为__invoke
. __invoke
当脚本尝试将对象作为函数调用时,将调用该方法。
现在在我对这个方法所做的研究中,人们把它比作 Java 方法.run()
——参见Interface Runnable。
考虑了很久,我想不出你为什么会打电话$obj();
而不是打电话$obj->function();
即使您正在迭代对象数组,您仍然会知道要运行的主函数名称。
那么__invoke
魔术方法是另一个例子,“仅仅因为你可以,并不意味着你应该”在 PHP 中的快捷方式,还是在某些情况下这实际上是正确的做法?
php - 即使方法存在,也可以在 PHP 中触发 __call()
PHP 文档对__call()
魔术方法有以下说明:
__call() 在对象上下文中调用不可访问的方法时触发。
在调用实际方法之前,即使存在方法,我也可以__call()
调用吗?或者,是否有其他我可以实现的钩子或提供此功能的其他方式?
如果重要的话,这是一个static function
(我实际上更喜欢使用__callStatic
)。
php - __get() 和 __set() 的最佳实践
源于这个关于使用__get()
和__set()
访问私有变量的问题,我想了解它们的一般使用方式。我想知道何时何地是使用重载函数的最佳时间,以及你在哪里使用过重载函数(如果你有的话)。
为了清楚起见,我们正在谈论这些功能:http ://us2.php.net/manual/en/language.oop5.magic.php
scala - Scala 的 apply() 方法是如何工作的?
在 Scala 中,如果我定义了apply
在类或顶级对象中调用的方法,则只要我将一对括号附加到该类的实例并将适当的参数apply()
放在它们之间,就会调用该方法。例如:
所以基本上,object(args)
只是object.apply(args)
.
Scala 如何进行这种转换?
这里是否有全局定义的隐式转换,类似于 Predef 对象中的隐式类型转换(但种类不同)?还是有更深层次的魔法?我之所以这么问,是因为 Scala 似乎强烈倾向于一致地应用一组较小的规则,而不是包含许多例外的许多规则。这最初对我来说似乎是一个例外。
python - 特殊方法的 Python 文档在哪里?(__init__, __new__, __len__, ...)
可以在类中使用的特殊双下划线/dunder 方法的完整列表在哪里?(例如, __init__
, __new__
, __len__
, __add__
)
python - __str__ 和 __repr__ 有什么区别?
__str__
Python和Python有什么区别__repr__
?
php - PHP的魔术方法__call子类
我的情况最好用一些代码来描述:
我知道我可以通过bar()
在子类中重新定义(以及所有其他相关方法)来使其工作,但就我的目的而言,如果该__call
函数可以处理它们会很好。它只会让事情变得更整洁,更易于管理。
这在PHP中可能吗?