反射4中内置函数

"""
class People:
def __init__(self,name,age,gender):
self.name=name
self.age=age
self.gender=gender
people_obj=People("haha",23,"male")
res=people_obj.__dir__()
print(res)

res=dir(people_obj)
print(res)
#Python中一切皆对象,类和对象都可以被这四个函数操作,用法一样
# hasattr(),getattr(),setattr(),delattr()
class Teacher:
def __init__(self,full_name,age=23):
self.full_name=full_name
self.age=age
tea_obj=Teacher("林允儿")
# print(tea_obj.__dict__)
res=hasattr(tea_obj,"full_name")
print(res)
res1=getattr(tea_obj,"full_name","属性不存在")
res2=getattr(tea_obj,"gender","属性不存在")
print(res1)
print(res2)
setattr(tea_obj,"gender","male")
res3=getattr(tea_obj,"gender","没有属性")
print(res3)
delattr(tea_obj,"age")
res4=hasattr(tea_obj,"age")
print(res4)
"""

"""
反射四种内置函数总结
hasattr(tea_obj,"age")判断对象age属性是否存在,存在返回True,不存在返回False
getattr(tea_obj,"age","属性不存在")判断对象age属性是否存在,若存在返回对应值
若不存在返回"属性不存在"
setattr(tea_obj,"age",23)设置对象age属性等于23
delattr(tea_obj,"age")对 对象age属性进行删除操作
"""

#用户交互小荔枝
"""

class FtpServer:
def server(self):
inp=input("input your cmd>>:").strip()
cmd,file=inp.split()
if hasattr(self,cmd):
func=getattr(self,cmd)
func(file)
else:
print("没有对应方法操作")
def get(self,file):
print("正在下载%s"%file)
def put(self,file):
print("正在上传%s"%file)
ftp=FtpServer()
ftp.server()
"""
"""
#内置方法 __str__,__del__
#__str_被打印时自动触发,print用来打印他的返回值

class Student:
def __init__(self,name,age):
self.name=name
self.age=age
def __str__(self):
return f"<姓名:{self.name}年龄:{self.age}>"
stu_obj=Student("yoona",23)
print(stu_obj)
stu_obj2=Student("林允儿",18)
print(stu_obj2)#stu_obj2.__str__
"""


posted @ 2020-04-15 22:21  五月雨变奏  阅读(137)  评论(0编辑  收藏  举报