我在读一本关于python类的书
我在__str__
的一个例子中发现的主要问题是
他用他做的奇怪的事
__class__.__name__
完整代码是:
def __str__(self):
return '{} {},HP:{},xp:{}'.format(self.col.title(),self.__class__.__name__,self.points,self.exp)
你可以使用self.class并且它可以工作
这一部分的作者评论我的意思是__class__.__name__
他说,__name__
这是类名的字符串版本
有人能给我解释一下什么意思吗
假设您定义了一个类:
如果你试着打印这个类,看看你得到了什么:
这是因为类的字符串版本包含在其中定义的模块。在本例中,它是在当前执行的模块shell中定义的,因此它显示为
__main__.MyClass
。如果我们使用self.__class__.__name__
,那么:它输出:
类的
__name__
属性不包括模块。注意:属性
__name__
给出了最初给类的名称。任何副本都会保留名称。例如:输出:
这是因为
__name__
属性被定义为类定义的一部分。使用SecondClass = MyClass
只是给类分配另一个名称。它不会以任何方式修改类或其名称。相关问题 更多 >
编程相关推荐