使用 python 属性,我可以做到这一点
obj.y
调用一个函数而不是仅仅返回一个值。
有没有办法用模块来做到这一点?我有一个我想要的案例
module.y
调用一个函数,而不仅仅是返回存储在那里的值。
原文由 Josh Gibson 发布,翻译遵循 CC BY-SA 4.0 许可协议
使用 python 属性,我可以做到这一点
obj.y
调用一个函数而不是仅仅返回一个值。
有没有办法用模块来做到这一点?我有一个我想要的案例
module.y
调用一个函数,而不仅仅是返回存储在那里的值。
原文由 Josh Gibson 发布,翻译遵循 CC BY-SA 4.0 许可协议
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决
由于 PEP 562 已在 Python >= 3.7 中实现,现在我们可以这样做
文件:module.py
演示:
Note that if you omit the
raise AttributeError
in the__getattr__
function, it means the function ends withreturn None
, then themodule.nosuch
will get aNone
的值。编辑
我的回答不能有 setter 和 deleter。如果需要,采纳kxr的回答。
创建
<class 'module'>
的子类,在该类中定义属性,然后将模块类更改为该类。文件:mymodule.py
演示:
我太新手不知道它为什么有效。所以功劳应该归功于kxr。