Day33.反射案例

1.反射案例_getattr案例和setattr案例

obj = 10 

if hasattr(obj, 'x'):
    print(getattr(obj, 'x'))
else:
    pass

# todo getattr指定默认参数,如果从10中获取不到'x'属性,则输出默认值None
print("getattr指定默认参数,如果从10中获取不到'x'属性,则输出默认值None".center(60, '-'))
print(getattr(obj, 'x', None))

# todo 判断如果obj有x这个对象,在执行setattr对象赋值操作
print('判断如果obj有x这个对象,在执行setattr对象赋值操作'.center(60, '-'))
if hasattr(obj, 'x'):
    setattr(obj, 'x', 111111)   # 10.x=11111
else:
    print('obj中没有x属性')

2.反射案例_getattr案例和setattr案例文件上传下载案例

class Ftp:
    def put(self):
        print('正在执行上传功能')

    def get(self):
        print('正在执行下载功能')

    def interactive(self):
        method = input('>>>:').strip()     # method = 'put'  or  method = 'get'    
        
        # todo hasattr()判断Ftp类下面是否有输入的method名称
        if hasattr(self, method):
            # todo 判断如果有method名称,则用getattr()进行调用,类.方法
            getattr(self, method)()
        else:
            print('输入的指令不存在')

obj = Ftp()
obj.interactive()

 

posted on 2024-07-11 18:08  与太阳肩并肩  阅读(2)  评论(0编辑  收藏  举报

导航