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('其他的逻辑')

动态导入模块

 

有点没有看懂

 

 

 

 

 

 

 

 

 

 

 





posted @ 2018-07-24 06:51  一棵大树一棵小树一棵草  阅读(117)  评论(0)    收藏  举报