gpt4 book ai didi

python - 指向方法的类变量的行为不同

转载 作者:行者123 更新时间:2023-12-01 04:53:42 26 4
gpt4 key购买 nike

类变量的行为与常规变量不同。当将类变量作为方法调用时,它不会像普通变量一样被调用:

#!/usr/bin/env python
def func():
print 'func called'

class MyClass(object):
FUNC = func

def call_func(self):
MyClass.FUNC()

instance = MyClass()
instance.call_func()

产品:

Traceback (most recent call last):
File "main.py", line 12, in <module>
instance.call_func()
File "main.py", line 9, in call_func
MyClass.FUNC()
TypeError: unbound method func() must be called with MyClass instance as first argument (got nothing instead)

最佳答案

要使其按预期工作,您必须使用 staticmethod() 修饰 FUNC:

#!/usr/bin/env python
def func():
print 'func called'

class MyClass(object):
FUNC = staticmethod(func)

def call_func(self):
MyClass.FUNC()

instance = MyClass()
instance.call_func()

关于python - 指向方法的类变量的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27904308/

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