每次调用类方法时都可以避免写'dot'吗?

时间:2015-06-05 14:59:28

标签: python

对不起有些不清楚的问题。我实际上想知道,当你迭代地调用类的方法时,Python中是否有可能不提类名?我的意思是写而不是:

SomeClass.Fun1()
SomeClass.Fun2()
...
SomeClass.Fun100()

类似的东西:

DoWith SomeClass:
    Fun1()
    Fun2()
    ...
    Fun100()

2 个答案:

答案 0 :(得分:3)

有几种方法可以实现这一点(from SomeClass import *locals().update(SomeClass.__dict__())),但你所尝试的并不合乎逻辑:

在90%的情况下,您不是在调用静态类方法,而是需要一个实例来操作的成员函数。您确实意识到第一个,您通常在方法上看到的self参数很重要,因为它允许您访问实例的命名空间。因此,即使在方法中,您也使用self.my_member代替my_member。这是一个重要的python概念,你不应该试图避免它 - 本地名称空间和实例的属性之间存在差异。

然而,你可以做的是拥有一个简短的句柄,没有任何开销:

my_instance = SomeClass() #notice, this is an instance of SomeClass, not the class or type itself
__ = my_instance

可以为您节省大量的打字费用。但是我更喜欢清晰地保存打字输入(地狱,vim有很好的Python自动完成插件)。

答案 1 :(得分:1)

是的,只需尝试from SomeClass import *(当然将SomeClass移动到其他文件后)