gpt4 book ai didi

Python:在实例方法中一般引用一个类?

转载 作者:太空宇宙 更新时间:2023-11-04 10:58:49 25 4
gpt4 key购买 nike

这个问题很相似,但它属于静态方法:In Python, how do I reference a class generically in a static way, like PHP's "self" keyword?

如何在实例方法中泛指类?

例如

#!/usr/bin/python
class a:
b = 'c'
def __init__(self):
print(a.b) # <--- not generic because you explicitly refer to 'a'

@classmethod
def instance_method(cls):
print(cls.b) # <--- generic, but not an instance method

最佳答案

对于旧式类(如果您的代码是Python 2.x 代码,并且您的类不是从object 继承的),请使用__class__ property .

def __init__(self):
print(self.__class__.b) # Python 2.x and old-style class

对于新式类(如果您的代码是 Python 3 代码),请使用 type :

def __init__(self):
print(self.__class__.b) # __class__ works for a new-style class, too
print(type(self).b)

在内部,type 使用 __class__属性(property)。

关于Python:在实例方法中一般引用一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7474836/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com