标签:python
我在Python中发现了以下开源代码:
class Wait:
timeout = 9
def __init__(self, timeout=None):
if timeout is not None:
self.timeout = timeout
...
我试图理解上面的代码是否有使用默认参数值的优点:
class Wait:
def __init__(self, timeout=9):
...
解决方法:
可以通过这种方式更改默认值:
Wait.timeout = 20
意味着,如果未设置,默认值为20.
例如:
>>> class Wait:
... timeout = 9
... def __init__(self, timeout=None):
... if timeout is not None:
... self.timeout = timeout
...
>>> a = Wait()
>>> b = Wait(9)
>>> a.timeout
9
>>> b.timeout
9
>>> Wait.timeout = 20
>>> a.timeout
20
>>> b.timeout
9
这利用了Python在没有找到实例属性的情况下查找类属性的事实.
标签:python 来源: https://codeday.me/bug/20190715/1469931.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。