首页 > 解决方案 > 如何在类中的函数中使用追加和扩展而不在同一个类中明确定义它们?

问题描述

我可以在一个类中使用附加和扩展而不事先定义它们吗?

例子:

class Blabla():
    def append(self, x):
        self.row += [x]

    def extend(self, row):
        for i in row:
            self.row += [i]

    def combine(self, rows):
        row_1 = Blabla([])
        [...]
        row_1.append(self.row[i])

标签: pythonpython-2.7

解决方案


您的类Blabla不仅会以某种方式自动拥有appendextend方法,因此对于您是否可以在没有定义它们的情况下调用它们的问题的简短回答是否定的。

如果你的类有一个 list 类型的成员(或具有附加和扩展功能的其他类型),那么你可以在该成员上调用 append 和 extend。

例如,如果Blabla.row成员是列表类型,那么执行以下操作是合法的......

...
row_1.row.append(...)
row_1.row.extend(...)
...
# or in one of the classes methods...
def foo(self, ...):
    self.row.append(...)
    self.row.extend(...)

否则,您的类需要先定义它们(显式地、通过继承或通过其他方式)


推荐阅读