2024-09-27 18:19:18 发布
网友
抱歉,有点不清楚。实际上,我想知道在Python中,当您迭代调用类的方法时,是否有可能更不用说类名了?我的意思是写,而不是:
SomeClass.Fun1() SomeClass.Fun2() ... SomeClass.Fun100()
比如:
DoWith SomeClass: Fun1() Fun2() ... Fun100()
什么?你知道吗
是的,只要尝试from SomeClass import *(当然,在将SomeClass移到另一个文件之后)
from SomeClass import *
有几种方法可以实现这一点(from SomeClass import *,locals().update(SomeClass.__dict__())),但您所尝试的并不是真正合乎逻辑的:
locals().update(SomeClass.__dict__())
在90%的情况下,调用的不是静态类方法,而是成员函数,它们需要一个实例来操作。您确实意识到,第一个,通常在方法上看到的self参数非常重要,因为它允许您访问实例的命名空间。因此,即使在方法中,也使用self.my_member而不是my_member。这是一个重要的python概念,您不应该试图避免它,因为本地名称空间和实例的属性之间存在差异。你知道吗
self
self.my_member
my_member
但是,您可以做的是使用短手柄,而不需要任何开销:
my_instance = SomeClass() #notice, this is an instance of SomeClass, not the class or type itself __ = my_instance
那可以节省你很多打字时间。但是我更喜欢清晰而不是保存的类型(见鬼,vim有很好的Python自动完成插件)。你知道吗
vim
是的,只要尝试
from SomeClass import *
(当然,在将SomeClass移到另一个文件之后)有几种方法可以实现这一点(
from SomeClass import *
,locals().update(SomeClass.__dict__())
),但您所尝试的并不是真正合乎逻辑的:在90%的情况下,调用的不是静态类方法,而是成员函数,它们需要一个实例来操作。您确实意识到,第一个,通常在方法上看到的
self
参数非常重要,因为它允许您访问实例的命名空间。因此,即使在方法中,也使用self.my_member
而不是my_member
。这是一个重要的python概念,您不应该试图避免它,因为本地名称空间和实例的属性之间存在差异。你知道吗但是,您可以做的是使用短手柄,而不需要任何开销:
那可以节省你很多打字时间。但是我更喜欢清晰而不是保存的类型(见鬼,
vim
有很好的Python自动完成插件)。你知道吗相关问题 更多 >
编程相关推荐