Python基础25类-反射

#反射的方法: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()

 

转载于:https://www.cnblogs.com/josie930813/p/10452801.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值