綁定,反射,內建函數

來源:互聯網
上載者:User

標籤:_id   類型   split()   __del__   client   []   回收   刪除   continue   

#Binder 方法:綁定給誰就應該誰來調用,誰來調用就會把誰當做第一個參數自動傳入import setting #設定檔為settingclass mysql: def __init__(self,host,port): #綁定到對象 self.host=host self.port=port @classmethod #綁定到類 def from_conf(cls): return cls(setting.HOST,setting.PORT) @staticmethod #不與類也不與對象綁定 def creat_id(): n=eroos return ncon=mysql.from_conf()print(con.port,con.host)com=mysql.creat_id()print(com.create_id)#反射 通過字串來操作對象或者類的屬性 1.hasattr 2.setattr 3.getattr 4.delattrclass foo: def __init__(self,name): self.name=name def f1(self): print(‘f1‘)obj=foo(‘abc‘)#hasattr() 判斷print(hasattr(obj,‘name‘))print(hasattr(obj,‘f1‘))#getattr 調用if hasattr(obj,‘f1‘): f=getattr(obj,‘f1‘) #print(f) f()#setattr() 修改obj.x=1setattr(obj,‘x‘,2)print(obj.__dict__)#delattr 刪除#del obj.namedelattr(obj,‘name‘)print(obj.__dict__)class fprser: def __init__(self,host,port): self.host=host self.port=port self.conn=‘xxx‘ def intera(self): while True: cmd=input(‘>>: ‘).strip() if not cmd:continue cmd_l=cmd.split() print(cmd_l) if hasattr(self,cmd_l[0]): func=getattr(self,cmd_l[0]) func(cmd_l) def get(self,cmd_l): print(‘geting......‘,cmd_l) def put(self,cmd_l): print(‘puting...‘,cmd_l)client=fprser(‘2.2.2.2‘,23) client.intera()#內建函數isinstance() #判斷一個對象是不是某個類型的l=list([])print(isinstance(l,list))issubclass() #判斷是不是某個的子類class foo: passclass bar(foo): passprint(issubclass(bar,foo))#__str__ #列印時觸發,預設列印記憶體位址class foo: def __init__(self,name,age): #初始化時觸發 self.name=name self.age=age def __str__(self): ##列印時觸發 return <__main__,.......> #可以修改列印自己需要的conf=foo(‘abc‘,38)print(conf) #print(abc.__str__())#__del__ 回收之後在列印delclass foo: def __del__(self): print(‘del....‘)obj=foo()print(‘123‘)class foo: def __del__(self): print(‘del....‘)obj = foo()del objprint(‘123‘)

綁定,反射,內建函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.