我很擅长使用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
我很确定,在功能上,他们在这个简单的例子中做了同样的事情。但是,是否有充分的理由选择其中一个(即是否有一些我目前不知道的问题)?
答案 0 :(得分:0)
如果您想使用该方法修改非self.data
的数据,则无法使用第一种方法。另一方面,如果 特定于Example
类,则使用第一种方法会更有意义。它永远不会用于修改除self.data
变量之外的任何内容,因此应该只能修改该变量。
功能上,没有区别。它主要是语义。