方法参数或实例属性?

时间:2020-01-20 23:40:02

标签: python oop

有时候,当我为需要对某个变量起作用的类设计一个新方法时,我不能说将这个变量作为方法参数传递是更好还是将这个变量另存为实例属性更好并在方法内部使用它。两种方法的优点/缺点是什么?

class A:
    def __init__(self, data):
        self.data = data
    def my_method(self):
        # does something with self.data

class B:
    def my_method(self, data):
        # does something with data

1 个答案:

答案 0 :(得分:1)

这取决于课程可能要做的所有其他事情。

通常,您的类封装的抽象是什么?

是否需要data进行大量操作,还是仅此一项? data会改变吗?如果data是此类的“点”,则它可能应该在__init__中,但是如果它使用data对对象执行 操作,那么可能不会。

我们需要了解更多。...