【发布时间】:2011-11-22 10:48:49
【问题描述】:
如果有人在其他地方问过这个问题,我深表歉意,但我不知道如何提出这个问题。
我是物理学家,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
产生的代码比不传递x, y 而是传递i 并每次都显式编写self 更简洁。您更喜欢什么,或者这是我正在打破的面向对象的范式?
在性能方面这不应该有什么不同,因为参数是通过引用传递的,对吧?
【问题讨论】:
-
尝试使用某种方式来区分函数名称中的单词,例如
calc_it或do_something。