小编tha*_*itz的帖子

面向对象编程中的 Python 参数传递

如果有人在其他地方问过这个问题,我深表歉意,但我不知道如何提出这个问题。

我是一名物理学家,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。你更喜欢什么,或者这是我打破的面向对象范式?

在性能方面,这应该没有区别,因为参数是通过引用传递的,对吗?

python oop arguments

5
推荐指数
1
解决办法
2639
查看次数

标签 统计

arguments ×1

oop ×1

python ×1