是的,可以从对象派生__name__
。在Python中,__name__
属性是一个特殊的属性,用于表示模块的名称。当一个模块被导入时,__name__
属性被设置为模块的名称。当模块被作为主程序运行时,__name__
属性被设置为'__main__'
。
例如,假设我们有一个名为my_module.py
的模块,其中包含以下代码:
class MyClass:
def __init__(self):
self.name = self.__class__.__name__
if __name__ == '__main__':
obj = MyClass()
print(obj.name)
在这个例子中,当我们直接运行my_module.py
文件时,__name__
属性将被设置为'__main__'
,因此obj.name
将输出MyClass
。当我们将my_module.py
导入到另一个模块中时,__name__
属性将被设置为模块的名称,例如my_module
。
总之,可以从对象派生__name__
属性,这在Python中是一种常见的编程模式。
领取专属 10元无门槛券
手把手带您无忧上云