如何在方法中打印类名?

18 浏览
0 Comments

如何在方法中打印类名?

这个问题已经有答案了:

获取实例的类名称:

Getting the class name of an instance

我编写了一个方法,并使用super()进行调用,但我不知道如何在一个打印语句中写类的名称!

from abc import ABC, abstractmethod
class Clothing(ABC):
    @abstractmethod
    def desc(self):
        pass
class Shirt(Clothing):
    def desc(self):
        x = input('Enter a color: ')
        y = input('Enter the size: ')
        print(f"Your {self} is: {x}\nAnd its size is: {y}")
class Jean(Shirt):
    def desc(self):
        super().desc()
# shirt = Shirt()
# shirt.desc()
jean = Jean()
jean.desc()

我尝试打印self,

虽然它有点返回类名称,但它的返回值是:

Your **<__main__.Jean object at 0x0000023E2C2D7D30>** is: red
And its size is: 32

顺便说一下,我是一周前才开始学习的,请给我指点迷津。

admin 更改状态以发布 2023年5月24日
0
0 Comments

instance.__class__.__name__

你需要访问 __class__ 属性获取类,然后使用 __name__ 获取类名。

class Foobar:
    ...
print(Foobar().__class__.__name__)
# Foobar

使用你的代码,这是一个示例:

class Jean(Shirt):
    def desc(self):
        super().desc()
    def class_name(self):
        return self.__class__.__name__
jean = Jean()
print(jean.class_name())
# Jean

0