gpt4 book ai didi

python - 在 Python 中调用时或在 __init__ 中初始化属性

转载 作者:行者123 更新时间:2023-11-28 19:30:20 27 4
gpt4 key购买 nike

在 __init__ 方法中或在 getter 中定义私有(private)类变量是更好的风格吗?似乎在调用变量之前不需要定义变量。

init中定义变量:

class Foo(object):
def __init__(self):
self._bar = None

@property
def bar(self):
if self._bar is None:
self._bar = Bar()
return self._bar

@bar.setter
def bar(self, value):
self._bar = value

在getter中定义它:

class Foo(object):
@property
def bar(self):
if not hasattr(self, '_bar'):
self._bar = Bar()
return self._bar

@bar.setter
def bar(self, value):
self._bar = value

最佳答案

不需要在需要类属性之前就定义它们,至少从解释器的角度来看是这样,但是这样做有很大的好处,因为它极大地提高了代码的可读性。为此,您应该只在类定义中定义它们,而不是在 init 中。

此类定义的示例是:

class MyClass:
"""A simple example class"""
i = 12345
def f(self):
return 'hello world'

您可以在文档中阅读更多信息 http://docs.python.org/2/tutorial/classes.html

关于python - 在 Python 中调用时或在 __init__ 中初始化属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18217449/

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