首页 > 编程语言 > 详细

Python基础25类-反射

时间:2019-02-28 20:14:43      阅读:141      评论:0      收藏:0      [点我收藏+]
#反射的方法:hasattr(),getattr(),setattr(),delattrr()
class BlackMedium:
    city=佛山
    def __init__(self,name,addr):
        self.name=name
        self.addr=addr
    def rent_house(self):
        print([%s]正在出租%s的房子%(self.name,self.addr))

b1=BlackMedium(小黑,千灯湖)
print(hasattr(b1,addr))#属性名要写字符串格式
func=getattr(b1,rent_house)#找不到属性则报错,但可加参数,找不到属性返回参数内容如下
print(getattr(b1,age,找不到该属性))
func()
setattr(b1,age,18)
setattr(b1,func,lambda x:x+1)
setattr(b1,func1,lambda self:self.name+sb)
print(b1.func(10))
print(b1.func1(b1))
print(b1.__dict__)
delattr(b1,age)
print(b1.__dict__)
#反射可以实现分开开发,进度互不影响
class FtpClient:
    ftp客户端,但还没有实现具体功能
    def __init__(self,addr):
        print(正在链接服务器【%s】%addr)
        self.addr=addr
f1=FtpClient(10.26.76.175)
if hasattr(f1,get):
    func_get=getattr(f1,get)
    func_get()
else:
    print(----->不存在此方法)
    print(处理其他的逻辑)
#动态导入模块
module_t=__import__(doc.t)
print(module_t)
module_t.t.test()

from doc.t import *
test()

import importlib
m=importlib.import_module(doc.t)
print(m)
m.test()

 

Python基础25类-反射

原文:https://www.cnblogs.com/josie930813/p/10452801.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!