抱歉,问题有点不清楚。我实际上想知道在 Python 中是否可以在迭代调用类的方法时不提及类名?我的意思是写而不是:
SomeClass.Fun1()
SomeClass.Fun2()
...
SomeClass.Fun100()
类似于:
DoWith SomeClass:
Fun1()
Fun2()
...
Fun100()
?
最佳答案
有几种方法可以实现这一点(from SomeClass import *
、locals().update(SomeClass.__dict__())
),但是您正在尝试的是不合逻辑:
在 90% 的情况下,您不是调用静态类方法,而是调用成员函数,这需要一个实例 来操作。您确实意识到第一个参数,即您通常在方法上看到的 self
参数很重要,因为它使您可以访问实例的命名空间。因此,即使在方法中,您也使用 self.my_member
而不是 my_member
。这是一个重要的 Python 概念,您不应试图回避它——本地 namespace 和实例属性之间存在差异。
然而,您可以做的是拥有一个短句柄,而无需任何开销:
my_instance = SomeClass() #notice, this is an instance of SomeClass, not the class or type itself
__ = my_instance
这可以为您节省大量的输入。但我更喜欢清晰度而不是保存的输入( hell ,vim
有很好的 Python 自动完成插件)。
关于python - 是否可以避免调用类方法时每次都写 'dot'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30669746/