有人可以解释在Python中对象名称之前有前导下划线的确切含义吗?另外,解释单个和双重前导下划线之间的区别.此外,无论所讨论的对象是变量,函数,方法等,这个含义是否保持不变?
我想迭代一个类中的方法,或者根据存在的方法以不同的方式处理类或实例对象.如何获取类方法列表?
另见:
我有一个带有一些内置方法的类。这是该类的抽象示例:
class Foo:
def __init__(self):
self.a = 0
self.b = 0
def addOneToA(self):
self.a += 1
def addOneToB(self):
self.b += 1
Run Code Online (Sandbox Code Playgroud)
为简单起见,我将内置方法总数减少到 2 个,但实际上我的类有接近 20 个。
接下来,我有另一个类,旨在处理Foo实例列表。
class Bar:
def __init__(self, fooInstances):
self.fooInstances = fooInstances
# Bar([Foo(), Foo(), Foo()])
Run Code Online (Sandbox Code Playgroud)
如果我想将其中一种Foo方法应用于 中的Foo实例Bar怎么办?
class Bar:
# ...
def addOneToA(self):
for fooInstance in self.fooInstances:
fooInstance.addOneToA()
def addOneToB(self):
for fooInstance in self.fooInstances:
fooInstance.addOneToB()
Run Code Online (Sandbox Code Playgroud)
上面的例子是我描述的一种方法,但是如果有 20 个Foo. 或者,我可以做这样的事情:
class Bar:
# ...
def applyFooMethod(self, func, …Run Code Online (Sandbox Code Playgroud)