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方法,求大佬解答
csdn里的一位大佬已经给出方法解决,通过实例化对象c确实不能直接调用Ct里的方法,但是Cs可以继承Ct之后,Cs的实例化对象就可以直接调用Ct里的test3方法