python反射

在这里插入图片描述

反射

# 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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值