问题标签 [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 投票
1 回答
2082 浏览

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

我正在开发一个 Flask 扩展,它将 CouchDB 支持添加到 Flask。为了使它更容易,我进行了子类couchdb.mapping.Document化,以便storeload方法可以使用当前的线程本地数据库。现在,我的代码如下所示:

为简洁起见,我省略了一些,但这是重要的部分。但是,由于 classmethod 的工作方式,当我尝试调用此方法时,我收到错误消息

我测试了用 替换调用mapping.Document.load.im_func(cls, db or g.couch, id),它可以工作,但我对访问内部im_属性并不特别满意(即使它们已记录在案)。有没有人有更优雅的方式来处理这个?

0 投票
3 回答
205 浏览

java - 类方法继承

我被告知java中的静态方法没有继承但是当我尝试以下测试时




它打印:

测试继承A ClassA

java静态方法(和字段)也有继承(如果您尝试调用类方法,它是否会沿着继承链寻找类方法)。以前不是这样吗?有没有像类方法那样混乱的继承 OO 语言?


显然静态方法是继承的,但不能被覆盖,那么 c# 是否也存在这个问题?做其他语言吗?

0 投票
3 回答
1028 浏览

python - 在同一类的方法中使用类/静态方法作为默认参数值

我想做这样的事情:

想法是有人可以做

并且还会发生一些神奇的机器学习;这最后一点对我来说并不是特别感兴趣,它只是我想到的第一件事,作为在函数内上下文和从调用者的角度举例说明静态方法使用的一种方式。

无论如何,这不起作用,因为is_silly_enough它实际上不是一个函数:它是一个对象,其__get__方法将返回原始is_silly_enough函数。这意味着它仅在作为对象属性引用时以“正常”方式工作。有问题的对象是由staticmethod()装饰器放置在SillyWalk' 的is_silly_enough属性和最初使用该名称定义的函数之间的函数创建的。

这意味着为了在其中一个或其调用者中使用 from 的默认值我们appraisal_method必须要么 SillyWalk.walk

  • 打电话appraisal_method.__get__(instance, owner)(...)而不只是打电话appraisal_method(...)
  • 或将其分配为某个对象的属性,然后将该对象属性作为我们调用的方法引用,就像我们调用的那样appraisal_method

鉴于这些解决方案似乎都不是 Pythonic™,我想知道是否有更好的方法来获得这种功能。我本质上想要一种方法来指定方法默认情况下应使用在同一类范围内定义的特定类或静态方法来执行其日常工作的某些部分。

我不想使用None,因为我想允许None传达不应调用该特定函数的信息。我想我可以使用其他一些值,例如Falseor NotImplemented,但似乎 a) 很麻烦 b) 不得不编写额外的几行代码以及其他冗余文档很烦人,因为它似乎可以表达非常简洁地作为默认参数。

最好的方法是什么?

0 投票
2 回答
159 浏览

objective-c - 将相同的消息传递给多个 ObjC 类

我有多个班级,我想向所有班级发送相同的消息。为了更清楚:

我想将具有相同参数的 doX:withClass: 发送到多个类。也许代码会让它更清楚:

我有三个方法在实现特定协议的类上执行类似的操作(doX:withClass: 方法执行许多步骤,假设给它的类实现了这样的协议)。

我的问题是,我怎样才能以编程方式循环遍历这些类,所以我可以简单地添加到一个列表中(在代码中 - 对能够在运行时添加不感兴趣)将其添加到循环中?

0 投票
2 回答
7254 浏览

objective-c - Objective-c:如何在类方法中获取类实例

我有 2 个类,Parent 和 Child,Parent 有一个名为 func 的类方法。现在我想在 func 方法中获取 Class 实例来区分哪个类是调用者。

有没有办法在类方法中获取类实例(或类名)?

0 投票
5 回答
34781 浏览

python - __getattr__ 用于 python 中的静态/类变量

我有一个像这样的课程:

无论何时调用MyClass.Fooor MyClass.Bar,我都需要在返回值之前调用自定义方法。在 Python 中可能吗?我知道如果我创建一个类的实例并且我可以定义我自己的__getattr__方法是可能的。但是我的场景涉及使用此类而不创建它的任何实例。

我还需要在调用时调用自定义__str__方法str(MyClass.Foo)。Python 是否提供这样的选项?

0 投票
1 回答
110 浏览

ruby - 如果我在 Ruby Object 类中定义一个类方法,我如何获取调用此方法的子类的名称?

例子

我怎样才能A进去Object#const_missing

0 投票
3 回答
3636 浏览

ruby - Ruby 模块和扩展自我

代码在什么情况下:

使用起来更有益,比如:

在顶部,一个是扩展的实例方法,而后者只是一个类方法,但是在调用任一方法时,您都必须 M.greet ,对吗?我只是好奇是否有人可以阐明何时使用一种代码而不是另一种代码。谢谢!

0 投票
9 回答
21771 浏览

python - 将装饰器附加到类中的所有函数

我真的不需要这样做,但只是想知道,有没有一种方法可以将装饰器一般地绑定到类中的所有函数,而不是为每个函数显式声明它。

我想它会成为一种方面,而不是装饰器,它确实感觉有点奇怪,但考虑到时间或身份验证之类的东西会很整洁。

0 投票
3 回答
16695 浏览

ruby - 如何动态定义将引用外部局部变量的类方法?

我知道,这是不正确的,因为def创建了一个新的范围。我也知道 usedefine_method可以在不创建新作用域的情况下创建实例方法,但我的观点是如何定义类方法