【Python】父类获取调用它的子类的名字

【Python】父类获取调用它的子类的名字

具体解释:
如果在父类中,某个方法需要知道被调用的子类的名字的时候,可以使用。例如,为每个子类分配对应的操作或者文件/状态信息储存位置/变量

示例

# -*- coding:utf-8 -*-
# @FileName :父类与子类.py
# @DateTime :2022/3/30 23:16
# @Author   :wanglb

class BaseClassTest(object):
    def __init__(self):
        ...

    @classmethod
    def class_name(cls):
        return cls.__name__

    def sub_class_name(self):
        print(self.class_name())
    

class Test1(BaseClassTest):
    def __init__(self):
        super(Test1, self).__init__()

    def test_class_name(self):
        print(self.class_name())


class Test2(BaseClassTest):
    def __init__(self):
        super(Test2, self).__init__()

    def test_class_name(self):
        print(self.class_name())


if __name__ == '__main__':
    test1 = Test1()
    test1.sub_class_name()
    test2 = Test2()
    test2.test_class_name()

运行结果为
Test1
Test2
代码解释
  • 在父类中写了一个类方法 class_name,参数为cls,直接返回cls.__name__,即为当前子类的名字
  • 父类中sub_class_name,是测试,在父类中,可以正常读取到子类的名字
  • 子类中test_class_name,是测试,在子类中,也可以知道子类自己的名字
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

远方_流浪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值