7_24 day 26 29min 反射应用 动态导入模块,需要继续看,有点不懂
class BlackMedium:
feture='Ugly'
def __init__(self,name,addr):
self.name=name
self.addr=addr
def sell_hourse(self):
print('【%s】 正在卖房子,傻逼才买呢' %self.name)
def rent_hourse(self):
print('【%s】 正在租房子,傻逼才租呢' % self.name)
b1=BlackMedium('黑中介','天上人间')
print(hasattr(BlackMedium,'feture'))
# # b1.sb=True
# setattr(b1,'sb',True)
# setattr(b1,'sb1',123)
# setattr(b1,'name','SB')
setattr(b1,'func',lambda x:x+1)
setattr(b1,'func1',lambda self:self.name+'sb')
print(b1.__dict__)
print(b1.func)
print(b1.func(10))
True
{'name': '黑中介', 'addr': '天上人间', 'func': <function <lambda> at 0x00695390>, 'func1': <function <lambda> at 0x00695270>}
<function <lambda> at 0x00695390>
11
本节类容现在开始
总之反射的好处就是,可以事先定义好接口,接口只有在被完成后才会真正执行,这实现了即插即用,这其实是一种‘后期绑定’,什么意思?即你可以事先把主要的逻辑写好(只定义接口),然后后期再去实现接口的功能
文件
class FtpClient:
'ftp客户端,但是还么有实现具体的功能'
def __init__(self,addr):
print('正在连接服务器[%s]' %addr)
self.addr=addr
def put(self):
print('正在上传文件')
from ftp_client import FtpClient
f1=FtpClient('1.1.1.1')
# f1.put()
if hasattr(f1,'put'):
func_get=getattr(f1,'put')
func_get()
else:
print('其他的逻辑')
动态导入模块
有点没有看懂
浙公网安备 33010602011771号