我正在尝试熟悉 python 中的类。在 C++ 中,关于成员变量,类的结构对我来说似乎很简单。您只需在类范围的开头或结尾(根据需要作为公共或私有)声明它们,并根据需要使用它们。
这在python中是如何处理的?
现在我倾向于编写类并在需要的地方声明变量:
class Foo():
standard = "standard"
def __init__(self, arg_1, arg_2):
self.first = arg_1
self.second = self.do_something(arg_2)
def do_something(param):
second = # do something with self.standard and param and store it.
return second
def do_another_thing():
self.third = # do another thing.
我知道,一个类也可以在没有成员变量的情况下定义,并且可以动态添加。
class Foo():
pass
foo = Foo()
foo.a = "a"
# etc.
将所有这些放在一起让我感到困惑,因为代码变得更难阅读。
所以我的问题是,关于python中的成员变量,推荐的设计类的方法是什么?
编辑:
我问的方式是误导。对于那个很抱歉!不过,这些答案帮助我理解了其他事情。;-)
我将重新表述:我并不是在询问如何解决我对类内部定义的变量和编码时动态添加的变量的困惑。
我想要解决的是我对 python 类的设计以及成员变量的困惑。我的意思是,最好将它们放在哪里,让潜在的代码读者无需搜索即可查看所有内容。这就是我提到 C++ 中的类的原因。您将所有成员变量放在一个位置,如果您想知道哪些数据存储在类中,您可以查看类的开头或结尾,您将获得所需的所有信息。
在我上面写的例子中,你看,standard
is above __init__(self, ...)
,first
and second
are inside of__init(self,...)
和third
is inside do_something()
,如果类很大,它可能低于所有其他方法。所以你必须逐行搜索它,或者永远不会意识到它的存在。
我希望我的问题现在能更好地提出。:-)