繁体   English   中英

Python中是否有类和实例方法?

[英]Is there a class-and-instance method in Python?

有没有办法用这个签名创建一个方法?

def(self, cls, arg1, arg2, arg3):
    self.instance = cls.some_class_default

我知道实例方法:

def(self, arg1, arg2):
   self.instance = some_default_literal_value

和 class 方法:

@classmethod
def(cls, arg1, arg2)
   cls.some_class_default = arg1

但是有没有一种传统的方法来标记同时使用实例变量class 变量的方法?

即使在一个方法中, self.__class__.some_class_default也感觉很麻烦,所以这样的方法感觉它可能很有价值。

约定是通过自引用直接访问 class 变量,例如:

def(self, arg1, arg2, arg3):
    print(self.some_class_default)

这种方法的优点是您不需要更改方法签名,只需从实例方法访问 class 变量。

获得 class 很简单:

def foo(self, x, y, z):
    cls = type(self)
    ...

添加一个完整的其他类型的方法来自动执行此操作

class Foo
    @combomethod
    def bar(self, cls, x, y, z):
        ...

似乎它的好处微乎其微。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM