我真的不知道当属性在类外使用时哪个更好。
将其定义为公共属性:
class Test:
def __init__(self) -> None:
self.a = 0
test = Test()
test.a += 1
print(test.a)
将其定义为私有并公开方法来更改或读取它:
class Test:
def __init__(self) -> None:
self.__a = 0
def a(self) -> None:
return self.__a
def increase_a(self) -> None:
self.__a += 1
test = Test()
test.increase_a()
print(test.a())
没有。
这不是该语言的预期使用方式。 如果类
Test
有记录的属性 a
,类的用户现在应该何时以及何时不更改它。
如果由于某种原因您需要保护对
a
的访问(例如,为了限制值或类型,或者当它可以更改时),您可以从您的属性中创建一个 property
,并且所有使用的代码Test
可以继续保持不变 - 但从现在起对 .a
的访问将受到代码保护。
但是除非你需要它作为属性,否则你不应该这样做,你只是在编写无用的样板代码。