【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,是测试,在子类中,也可以知道子类自己的名字
本文介绍如何在Python中让父类获取调用它的子类的名字,通过定义类方法实现这一功能,使得父类能够根据子类名称进行操作或记录。
842

被折叠的 条评论
为什么被折叠?



