Python导入时能否重命名类静态方法 实现无类前缀直接调用?
解决方案
完全可以实现,有两种常用写法都能满足需求:
写法1:一步导入直接调用/重命名
Python支持直接导入类的静态方法、类方法和类属性,导入时可以直接用as指定别名:
# 不需要重命名的场景,导入后直接调用foo()即可 from bar.Bar import foo # 需要重命名的场景,比如命名为bar_foo,调用bar_foo()就行 from bar.Bar import foo as bar_foo
写法2:导入类后手动绑定本地变量
如果你已经导入了Bar类,只需要把静态方法赋值给当前作用域的变量即可:
from bar import Bar foo = Bar.foo # 之后直接调用foo()就会执行对应逻辑 foo()
原理解释
你之前的写法只导入了bar模块或者Bar类本身,没有把foo方法绑定到当前文件的顶层变量,所以只能通过Bar.foo()的方式调用,无法直接用foo()执行。
内容的提问来源于stack exchange,提问作者JRR
相关产品推荐
相关产品推荐

