问题标签 [magic-function]

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.

0 投票
1 回答
2121 浏览

php - 使用神奇的 PHP 调用 Laravel 的 getter 和 setter

我对 PHP 魔术方法并没有真正的经验,我正在尝试创建与 Laravel 框架交互的隐式 getter 和 setter。现在,我知道有 accessors 和 mutators ,但必须明确声明它们。我想做的是某种隐式函数,而不是声明它们。我看到这是在 Zend 框架中完成的,类似于

现在,如果我有一个具有此功能的模型,我将能够执行$model->getProperty()or $model->setProperty($property)。但我不确定如何将其应用于 Laravel。任何想法?

0 投票
1 回答
335 浏览

model - Phalcon:与命名空间的模型关系

我只是想用命名空间设置模型。那部分很简单。这是我遇到困难的关系部分。

我有这两个模型(这些都被剥离了):

所以......按原样,这会给我:

所以,我开始认为它与命名空间有关。所以...我将 hasMany 更改为:

我可以在“我的”前面加上反斜杠,但无论哪种方式,我都会得到:

我尝试将该行更改为:

...这相当冗长,但无论如何。我仍然收到“方法不存在”错误。

我错过了什么?

0 投票
0 回答
22 浏览

python - 在 Python 3.4 的 __init__ 中定义对象的 __call__

我有以下代码:

当我测试它时,我得到以下结果:

此外,当我__call__在类定义中定义一个方法时,该对象是可调用的,但是__call__尽管对象__call__是我传递给__init__函数的对象,但仍调用了类:

现在,在测试时我得到:

在 Python 2 中,这按预期工作(x(args)调用x.__call__(args))。为什么这在 Python 3.4 中不起作用?你怎么能解决这个问题?

回答:我在看到为什么这里会出现这样的行为后,正在回答我自己的问题。

解决此问题且不影响客户端的一种简单方法是:

当我使用它时,我得到(如预期的那样):

0 投票
1 回答
196 浏览

python - 在 ipython 的系统 shell 命令中替换循环变量

我想遍历一个列表(样本名称),并使用 ipython 的系统 shell 命令(“!”)对每个样本重复相同的命令。我以前做过这个没有问题,但是在这个特定的代码下不断收到一个 SyntaxError。如果您知道出了什么问题,请告诉我-谢谢!

这是示例代码(实际上有更多示例):

请注意,samtools 是 $PATH 中的一个程序,如果我执行指定文件路径的命令,它可以工作 - 抱歉,这将无法重现,因为您需要安装该程序并且这些是大量基因组文件 - 我我希望有人能够发现问题所在!

0 投票
1 回答
367 浏览

php - 是否有一种神奇的方法可以静态访问非静态属性?

我希望这不是一个愚蠢的问题,但我真的找不到答案。

我有一些带有单例函数的全局类。主要是关于小的配置参数。

这工作正常:

这也是:

但大多数情况下只需要 1 个小参数,我想将其描述为:

因为一切都是神奇的方法,但我找不到任何方法来解决这个问题。我尝试过静态 __get() 和 __callstatic()。但无法让它工作。

将属性声明为静态不是一种选择。因为该类将主要用作实例。


更新解决方法

我刚想到一个肮脏的解决方法。我不确定它是否太脏了。

或者

然后用 __callStatic() 处理它

这也太脏了吧?

0 投票
6 回答
193344 浏览

python - python中的%timeit是什么?

我总是像这样阅读代码来计算时间:

你能解释一下这里的“%”是什么意思吗?

我认为,“%”总是用于替换字符串中的某些内容,例如 %s 表示替换字符串,%d 表示替换数据,但我不知道这种情况。

0 投票
1 回答
51 浏览

python - ipython 使用“%run”执行文件的子集

有什么方法可以使用 %run 来执行文件的子集吗?

像这样的东西:

0 投票
1 回答
59 浏览

python - 实例“调用”时的返回值

我想要一个可在类上调用的函数。类似于:

我必须使用哪个魔法功能?

0 投票
2 回答
2900 浏览

python - 魔术函数timeit

我正在使用神奇的 %%timeit 函数来获取执行某些代码所需的时间。困扰我的是,当我运行 %%timeit 时,我没有得到结果。例如:

现在,如果我想在下一个单元格中使用 c,我会发现 c 尚未定义。

你能帮我理解为什么会发生这种情况吗,为什么在那个特定的单元格中使用神奇的 %%timeit 函数时不存储 c ?

0 投票
0 回答
53 浏览

python - 是否可以拦截在 python 类中声明新属性?

在类实例中创建新属性,我们可以使用__setattr__魔术函数进行拦截。 self.new_attribute = "hi!"

但是如果我想拦截类属性的创建呢?

那可能吗?如果是这样,怎么做?元类?

PSinspect在类内部使用是可能的(例如在DeclareAttribute("new_attribute", "hi!")内部使用getframe),但在这种情况下,我失去了代码导航到这个名称的可能性。