如果有人在其他地方问过这个问题,我深表歉意,但我不知道如何提出这个问题。
我是一名物理学家,Python 是我的第一个面向对象语言。我喜欢这种语言,因为它的代码很干净,不知何故,一切都按预期工作(由我 ;)。
但是我有一个问题,也许它更像是一种设计选择,但是由于我的面向对象编程是自学的并且非常基础,我不确定该走哪条路。
所以问题是:我应该主要传递参数还是直接操作对象数据?因为,例如:
class test(object):
...
def dosomething(self, x, y):
# do someting with x, y involving a lot of mathematic manipulations
def calcit(self):
k = self.dosomething(self.x[i], self.y[i])
# do something else with k
Run Code Online (Sandbox Code Playgroud)
生成的代码比不传递x, y而是每次显式传递i和编写要干净得多self。你更喜欢什么,或者这是我打破的面向对象范式?
在性能方面,这应该没有区别,因为参数是通过引用传递的,对吗?