问题遇到的现象和发生背景
getattr只能调用自己类里的方法和属性,无法调用导入的其他类的属性和方法,但是导入其他类的实例化对象使用hasattr方法返回的是True,但是实例化对象里无法直接调用其他类的方法只能调用其他类对象,这个该怎样用getattr实现调用其他类的方法呢
用代码块功能插入代码,请勿粘贴截图
from common.read_file import Read
class Ct:
def test3(self):
print('test4函数')
class Cs:
name='张三'
def __init__(self):
self.read=Read(r'../data/test.xlsx',0)
self.ct=Ct()
def test1(self):
print('test1函数')
def test2(self):
print('test2函数')
if __name__ == '__main__':
c=Cs()
print(hasattr(c, 'ct'))#True
print(hasattr(c,'test2'))#True
print(hasattr(c,'name'))#True
print(hasattr(c,'test3'))#False
getattr(c, 'test2')()
getattr(c,'test3')()
运行结果及报错内容
getattr(c,'test3')()
AttributeError: 'Cs' object has no attribute 'test3'
我的解答思路和尝试过的方法
geattr(c,'ct.test3')()
getattr(c,'ct').test3()
我想要达到的结果
使用getattr方法可以让实例化对象c调用其他类里的test3方法,求解答