如何在类内的函数中使用追加和扩展而不在同一个类中明确定义它们?

问题描述 投票:0回答:1

我可以在没有事先定义它们的情况下使用追加和扩展类吗?

示例:

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])
python python-2.7
1个回答
0
投票

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

如果您的类具有类型列表的成员(或具有附加和扩展功能的其他类型的成员,则可以在该成员上调用附加和扩展。

例如,如果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(...)

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

© www.soinside.com 2019 - 2024. All rights reserved.