python_setattr_learning

# author: Roy.G
a="self,name,color,age,food"
b=a.split(",") # 以, 分开字符串
for i in b:
print("self."+i+"="+i)


class animal(object):
def __init__(self,name,color,age,food):
self.name = name
self.color = color
self.age = age
self.food = food
def walk(self):
print("%s walk."%self.name)

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

dog=animal("dog","green",10,"meat")
dog.walk()
print(hasattr(dog,"walk")) #determine dog if has walk
choice=input(":>>")
if hasattr(dog,choice):
getattr(dog,choice)() #brackets means invoking the function
if not hasattr(dog,choice):
print("wrong choice")
# setattr(dog,choice,eat) # eat have no brackets ,don't invoke the eat
# getattr(dog,choice)(dog)
setattr(dog,choice,38)
print(getattr(dog,choice)) # if seattr is not a def ,it becomes a attribue.
print("happy is",dog.happy)
delattr(dog,"happy")
print(dog.happy)

posted on 2022-01-17 01:03  ttm6489  阅读(29)  评论(0编辑  收藏  举报

导航