我遇到了一段
Python代码,技术上看起来像这样:
def bar(b): return b*2 class MyClass(object): def __init__(self,a): self.a = a self.b = 10 def foo(self,b=None): return bar(b if b is not None else self.b)
因此,类具有b作为固定属性,如果在没有参数的情况下调用它,则将其用作classmethod foo的默认输入.
请假设在这种情况下b应该是浮点数.
请忽略未使用的self.a,否则使用它 – 我只是想确保您看到构造函数可以设置属性.
用法如下所示:
c = MyClass(2) c.foo(3) # returns 3*2 = 6 c.foo() # returns 10*2 = 20
在这种情况下,我想知道foo方法.这是将self.b实现为b的默认值的好方法吗?
以下两个建议中的一个或多或少是我的愿望吗?如果是这样:为什么?
def foo(self,b=None): return bar(b or self.b)
要么
def foo(self,b=self.b): return bar(b)
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。