问题标签 [class-method]

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 投票
3 回答
16396 浏览

objective-c - 如何在不引用类的情况下在 Objective C 中调用 +class 方法?

我有一系列“策略”对象,我认为这些对象可以方便地实现为一组策略类的类方法。我为此指定了一个协议,并创建了要遵守的类(如下所示)

然后我有一个符合这个协议的类的数组(就像 CurrentListCounter 一样)

请注意我如何使用对象之类的类(这可能是我的问题 - 在 Smalltalk 中,类是像其他所有东西一样的对象 - 我不确定它们是否在 Objective-C 中?)

我的确切问题是,当我从数组中取出一个策略对象时,我想调用该方法:

我在返回语句上收到警告 - 它说 -countFor: not found in protocol (因此它假设它是我想调用类方法的实例方法)。然而,由于我的数组中的对象是类的实例,它们现在就像实例方法(或者在概念上它们应该是)。

有没有调用类方法的神奇方法?或者这只是一个坏主意,我应该只创建我的策略对象的实例(而不是使用类方法)?

0 投票
18 回答
334791 浏览

objective-c - 类方法和实例方法有什么区别?

类方法和实例方法有什么区别?

实例方法是访问器(getter 和 setter),而类方法几乎是其他一切?

0 投票
4 回答
311 浏览

ruby - 定义 Ruby 类方法的方式有区别吗?

给定以下两种在 Ruby 中定义类方法的方法:

两者有区别吗?一个比另一个更可取吗?

0 投票
4 回答
50112 浏览

python - 在 Python 中调用基类的类方法

考虑以下代码:

Derived.do,我怎么称呼Base.do

如果这是一个普通的对象方法,我通常会直接使用super甚至直接使用基类名称,但显然我找不到在基类中调用类方法的方法。

在上面的示例中,Base.do(a)打印Base类而不是Derived类。

0 投票
1 回答
497 浏览

python - Python 类方法 - 有没有办法缩短调用时间?

我正在玩 Python,并且在与调用它的包不同的包中创建了一个类。在这个类中,我添加了一个从我的主函数调用的类方法。同样,它们位于单独的包中。调用类方法的行比我在其他地方看到的示例中想象的要长得多。这些示例倾向于从同一个包中调用类方法 - 从而缩短了调用语法。

这是一个我希望有帮助的例子:

在“配置”包中:

现在在另一个名为“test”的包中:

您可以看到 'config.TestClass.TestClass.add_key' 比普通的类方法调用要冗长得多。有没有办法让它更短?也许'TestClass.add_key'?我是否以一种奇怪的方式定义了某些东西(类与 python 文件名匹配的情况?)

0 投票
10 回答
335697 浏览

c++ - 通过函数指针调用 C++ 成员函数

如何获取类成员函数的函数指针,然后使用特定对象调用该成员函数?我想写:

另外,如果可能的话,我还想通过指针调用构造函数:

这可能吗?如果可以,最好的方法是什么?

0 投票
1 回答
418 浏览

iphone - 可可触感。这些 NSMutableData 方法之间到底有什么区别?

我有点不清楚的一件事是这些 NSMutableArray 方法之间的区别:

在幕后,类方法在这里究竟做了什么?它与实例方法有何不同?

干杯,道格

0 投票
1 回答
3653 浏览

python - 类方法对象如何工作?

我很难理解 classmethod 对象在 Python 中是如何工作的,尤其是在元类和__new__. 在我的特殊情况下,当我遍历members被赋予的__new__.

对于普通方法,名称只是存储在__name__属性中,但对于类方法,显然没有这样的属性。我什至看不到如何调用类方法,因为也没有__call__属性。

有人可以向我解释一个类方法是如何工作的或指向我一些文档吗?谷歌搜索让我无处可去。谢谢!

0 投票
5 回答
60335 浏览

python - 将 super 与类方法一起使用

我正在尝试学习 Python 中的 super() 函数。

我以为我已经掌握了它,直到我遇到这个例子(2.6)并发现自己卡住了。

http://www.cafepy.com/article/python_attributes_and_methods/python_attributes_and_methods.html#super-with-classmethod-example

当我在示例之前阅读此行时,这不是我所期望的:

如果我们使用类方法,我们没有实例可以调用 super 。对我们来说幸运的是, super 甚至可以使用类型作为第二个参数。--- 类型可以直接传给super,如下图。

这正是 Python 告诉我的,通过说应该用 B 的实例调用 do_something() 是不可能的。

0 投票
9 回答
811 浏览

python - 为什么我的 Python 类声称我有 2 个参数而不是 1 个?

有了那个代码,我收到了

有什么想法吗?