反射
# class Student(object):
# #属性
# def __init__(self,name,age):
# self.name=name
# self.age=age
# #方法
# def get_name(self):
#
# return self.name#返回一个当前的名字
# def get_age(self):
# return self.age
#实例化一个学生对象
# s=Student("dd",22)
# #判断下学生对象有没有name属性
# print(hasattr(s,'name'))
# #判断下学生对象有没有get_name方法
# print(hasattr(s,'get_name'))
# print(hasattr(s,'eat'))
#获取属性值
#s=Student("dd",22)
# print(getattr(s,'name'))
# #获取方法信息返回的是方法名,怎么调用
# print(getattr(s,"get_name"))
#
# f=getattr(s,'get_name')
# print(f())#调用方法名
#
# #获取一个不存在的熟悉和方法
# print(getattr(s,'ss'))
#可结合hasattry与getattr
# if hasattr(s,'de'):
# print(getattr(s,'de'))
# else:
# print('no attr')
#
#setattr修改属性值
# s=Student("dd",22)
# setattr(s,'name','fda')
# print(getattr(s,'name'))
#delattr删除属性
# s=Student("dd",22)
# delattr(s,'name')
# print(getattr(s,'name'))
#需求:检测一下time有没有ctiem这个属性
# import time
# print(hasattr(time,'ctime'))#判断有没有ctime
# f=getattr(time,'ctime')#获取ctiem这个属性,返回一个函数名f,运行这个f(),
# print(f())
#需求:检测当前模块有那些属性
#反射应用场景
'''
用户输入eat就调用eat方法
'''
# class A(object):
# def __init__(self,name,age):
# self.name=name
# self.age=age
# def eat(self):
# print("ee")
# d=A("小",3)
# # eat
# choise=input(".....:").strip()
# if hasattr(d,choise):
# f=getattr(d,choise)
# f()
# else:
# print("no attr")
#把函数传入类里面
# def bulk(self):
# print("%s is yelling...." %self.name)
#
# class A(object):
# def __init__(self,name,age):
# self.name=name
# self.age=age
# def eat(self):
# print("ee")
# d=A("小",3)
# # eat
# choise=input(".....:").strip()
# if hasattr(d,choise):
# getattr(d,choise)
#
# else:
# setattr(d,choise,bulk)
# d.bulk(d)
# print("no attr")
#修改name属性值与添加属性
# def bulk(self):
# print("%s is yelling...." %self.name)
#
# class A(object):
# def __init__(self,name,age):
# self.name=name
# self.age=age
# def eat(self):
# print("ee")
# d=A("小",3)
# # eat
# choise=input(".....:").strip()
# if hasattr(d,choise):
# atr=getattr(d,choise)
# setattr(d,choise,"3dsf")
# else:
# setattr(d,choise,'gffg')
# print(getattr(d,choise))
# print(d.name)
#FileNotFoundError: [Errno 2] No such file or directory: 'demo_1.txt'
#FileNotFoundErro是异常类型
#[Errno 2] No such file or directory: 'demo_1.txt'异常信息描述
#open("demo_1.txt","r")
#print(ww)
python反射
最新推荐文章于 2024-05-02 23:37:30 发布