【发布时间】:2019-01-14 05:39:29
【问题描述】:
我有 4 个类,每个类都有几个方法。我需要这些方法来使用一些类变量作为参数,例如。
class Orange:
def __init__(self,banana):
self.banana = banana
def apple(self,fruit=self.banana):
return something
我已经发现这不起作用,因为方法参数是在创建函数时定义的,而不是在调用它时,所以我在这里找到了一个解决方法:
def apple(self,fruit=None):
if fruit is None:
fruit = self.banana
但问题是,我有大约 50 个参数(每个方法中没有,而是所有类的所有方法的摘要),使用这种方法,我会得到大约 一百行新代码 在我看来,这似乎是非常“肮脏” 的解决方法...没有更简单的方法来实现它吗?
【问题讨论】:
-
你能解释一下你想用你的方法做什么吗?你的例子有点奇怪......
-
好吧,你可以使用条件表达式:
fruit = self.banana if fruit is None else fruit。这样你的台词就减半了。我会使用完整的声明。 -
你确定你需要一个有 50(!) 个参数的方法吗?
标签: python python-3.x function class