相关疑难解决方法(0)

在对象名称之前单个和双下划线的含义是什么?

有人可以解释在Python中对象名称之前有前导下划线的确切含义吗?另外,解释单个和双重前导下划线之间的区别.此外,无论所讨论的对象是变量,函数,方法等,这个含义是否保持不变?

python naming-conventions

1205
推荐指数
13
解决办法
36万
查看次数


将多个类方法应用于对象列表的 Pythonic 方式

我有一个带有一些内置方法的类。这是该类的抽象示例:

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)

python class

5
推荐指数
1
解决办法
70
查看次数

标签 统计

python ×3

class ×1

naming-conventions ×1