gpt4 book ai didi

python - 在 Python 类定义中调用静态方法

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

我有一个定义静态方法的类定义。我有一个字段,我想用静态方法对其进行初始化。我的默认想法导致我这样做:

class SomeConcreteClass(object):
some_data = SomeConcreteClass.create_default_data()
@staticmethod
def create_default_data():
return 'Foo'

问题是当我运行它时,我得到一个NameError: name 'SomeConcreteClass' is not defined。这是有道理的,因为 SomeConcreteClass 刚刚被构建。这是否意味着我不能使用静态初始化函数?是否有推荐的替代方法来处理这种情况?

最佳答案

create_default_data 的合适位置应该完全在类之外。然后你的问题就消失了:

def create_default_data():
return 'Foo'

class SomeConcreteClass(object):
some_data = create_default_data()

如果您确实希望它作为类中的静态方法也可以:

def _create_default_data():
return 'Foo'

class SomeConcreteClass(object):
some_data = _create_default_data()
create_default_data = staticmethod(_create_default_data)

但是静态方法在 Python 中并不经常使用,因为没有必要将函数放在类中,除非它以某种方式对类进行操作。

关于python - 在 Python 类定义中调用静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14200332/

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