码迷,mamicode.com
首页 > 其他好文 > 详细

二反射

时间:2018-09-03 22:28:39      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:put   字符串   ice   name   choice   通过   login   判断   默认   

# 反射:通过字符串来操作对象属性,类也是一样。
class Foo:
    def __init__(self, name):
        self.name = name

    def eat(self):
        print(‘%s is eating‘ % self.name)


obj = Foo(‘egon‘)

print(hasattr(obj, ‘eat‘))  # 判断对象是否有eat属性,有返回True

print(getattr(obj, ‘age‘, None))  # 获取对象是否有age属性,没有返回设置的默认值None

setattr(obj, ‘age‘, 18)  # 当age不存在时候就是创建、存在就是需改
print(obj.__dict__)  # {‘age‘: 18, ‘name‘: ‘egon‘}
setattr(obj, ‘age‘, 180)
print(obj.__dict__)  # {‘age‘: 180, ‘name‘: ‘egon‘}

#case
class Ftp:
    def get(self):
        print(‘get‘)

    def put(self):
        print(‘put‘)

    def login(self):
        print(‘login‘)

    def run(self):
        while True:
            choice = input(‘>>:‘).strip()
            if hasattr(self, choice):
                method=getattr(self,choice)
                method()
            else:
                print(‘命令不存在‘)


obj = Ftp()
obj.run()

  

二反射

标签:put   字符串   ice   name   choice   通过   login   判断   默认   

原文地址:https://www.cnblogs.com/yspass/p/9581326.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!