在Python类中使用正确的函数

时间:2015-03-12 12:16:20

标签: class python-2.7

我很擅长使用Python的面向对象,所以我有一些常见的格式问题。其中之一:是否有正确的方法将数据传递出类中的函数?一个例子是:

class Example:
    def __init__(self,p1,p2,p3):
        self.level = p1
        self.data  = p2      

        # Is it right/wrong to call the function and make the assignment this way
        self.data = self.function1(self.data)

        # or is this method right/wrong/better?
        self.function2(self.data)

    def function1(self,data):
        self.data += 5

    def function2(self,data):
        data += 5
        return data

我很确定,在功能上,他们在这个简单的例子中做了同样的事情。但是,是否有充分的理由选择其中一个(即是否有一些我目前不知道的问题)?

1 个答案:

答案 0 :(得分:0)

如果您想使用该方法修改非self.data的数据,则无法使用第一种方法。另一方面,如果 特定于Example类,则使用第一种方法会更有意义。它永远不会用于修改除self.data变量之外的任何内容,因此应该只能修改该变量。

功能上,没有区别。它主要是语义。