99热99这里只有精品6国产,亚洲中文字幕在线天天更新,在线观看亚洲精品国产福利片 ,久久久久综合网

歡迎加入QQ討論群258996829
麥子學(xué)院 頭像
蘋(píng)果6袋
6
麥子學(xué)院

Python學(xué)習(xí)之類中特殊成員方法詳解

發(fā)布時(shí)間:2017-06-09 16:39  回復(fù):0  查看:2075   最后回復(fù):2017-06-09 16:39  
本文和大家分享的主要是python 特殊成員方法相關(guān)內(nèi)容,一起來(lái)看看吧,希望對(duì)大家 學(xué)習(xí)python有所幫助。
  __doc__  查看尖的描述信息
  __module__ 表示當(dāng)前操作的對(duì)象所在的模塊
  __class__ 表示當(dāng)前操作的對(duì)象所屬的類
  __init__ 構(gòu)造方法 通過(guò)類創(chuàng)建對(duì)象自動(dòng)執(zhí)行
  __del__ 析構(gòu)方法 , 當(dāng)前對(duì)象在內(nèi)存中被釋放自動(dòng)斬妖執(zhí)行
  __call__ 對(duì)象后面加括號(hào)觸發(fā)執(zhí)行
  __dict__ 查看類或?qū)ο笾械某蓡T
  __str__ 如果一個(gè)類中定義了此方法 , 那么打印此類對(duì)象時(shí) , 輸出此方法的返回值
  __getitem__ 當(dāng)類中定義了一個(gè)字典的屬性成員 , 可以獲取
  __setitem__ 設(shè)置修改類中字典的數(shù)據(jù)
  __delitem__ 刪除 類中字典的數(shù)據(jù)
  __metalass__ 其用來(lái)表示該類由 誰(shuí) 來(lái)實(shí)例化創(chuàng)建
  __new__ 觸發(fā)  __init__ 創(chuàng)建實(shí)例
   1 # ! usr/bin/env python
  2 #-*-coding:utf-8-*-
  3 # Author calmyan
  4
  5 from lib.ss import a
  6 # 示例類  dog
  7 class doges(object):
  8     """ 類的描述信息 """
  9     def __init__(self,name,food):
  10         self.name=name
  11         self.food=food
  12         self.data={}# 定義一個(gè)類的字典
  13     def __call__(self, *args, **kwargs):# 對(duì)象后面加括號(hào)解執(zhí)行
  14         print(*args)
  15     def __str__(self):# 默認(rèn)輸出返回值
  16         return self.name
  17     def __getitem__(self):# 可以獲取類的的字典
  18         return self.data
  19     def __setitem__(self, key, value):# 可以設(shè)置類的的字典
  20         self.data[key]=value
  21     def __delitem__(self, key):# 可以刪除類的字典的內(nèi)容
  22         del self.data[key]
  23 dog=doges('xxx','iii')
  24 print(dog.__doc__)
  25 b=a()
  26 print(b.__module__)# 操作的對(duì)象的那個(gè)模塊
  27 print(dog.__class__)# 當(dāng)前操作的對(duì)象的類是什么
  28 dog('111')#
  29 print(doges.__dict__)# 查看類或?qū)ο蟮某蓡T  類只打印類的成員不打印對(duì)象的成員
  30 print(dog.__dict__)# 查看類或?qū)ο蟮某蓡T 對(duì)象只打印對(duì)象的成員不打印類的成員
  31 print(dog)# 打印  __str__ 的返回值
  32 print(dog.__str__())# 打印返回值
  33
  34 dog['1']=1000# 觸發(fā) .__setitem__()
  35 dog['2']=1000# 觸發(fā) .__setitem__()
  36 print(dog.__getitem__())
  37 print(dog.__delitem__('1'))# 刪除類中字典
  38 print(dog.__getitem__())
  39
  40 # 設(shè)置類的特殊方法
  41 def func(self):
  42     print('hello word%s'%self.name)
  43     print()
  44
  45 def __init__(self,name,age):
  46     self.name=name
  47     self.age=age
  48 ##type 參數(shù)  1: 類名  2. 類的基類  3. 類的成員 , 字典格式
  49 CAT=type('CAT',(object,),{'func':func,'__init__':__init__})
  50
  51 cat=CAT(' 喵喵 ',3)
  52 cat.func()
  53 print(cat.name,cat.age)
  View Code
反射: 通過(guò)字符串 調(diào)用對(duì)象中的方法
  1 # ! usr/bin/env python
  2 #-*-coding:utf-8-*-
  3 # Author calmyan
  4 # 反射
  5
  6 # 定義 一個(gè)新方法
  7 def bulk(self):
  8     print("%s is talking...."%self.name)
  9
  10 class DOG(object):
  11     def __init__(self,name):
  12         self.name=name
  13     def eat(self,food):
  14         print('%s is eating %s'%(self.name,food))
  15
  16 d=DOG(' 一只狗 ')
  17
  18 stres=input(' 方法 :').strip()# 手動(dòng)輸入方法
  19
  20 if hasattr(d,stres):# 通過(guò)字符串反射對(duì)象中的方法 , 是否存在
  21     func=getattr(d,stres)# 調(diào)用此方法
  22     func(" 骨頭 ")# 執(zhí)行方法
  23 else:
  24     setattr(d,stres,bulk)# 對(duì)象增加一個(gè)方法 返回一個(gè)內(nèi)存地址
  25     getattr(d,stres)(d)# 調(diào)用此方法 增加的
  26     #d.talk(d)
  27 # 屬性修改
  28 stres1=input(' 屬性 :').strip()# 手動(dòng)輸入屬性
  29 if hasattr(d,stres1):# 如果已經(jīng)存在
  30     attr=getattr(d,stres1)# 調(diào)用
  31     a=input(' 重新賦值 :').strip()
  32     setattr(d,stres1,a)
  33     print(getattr(d,stres1))
  34 else:
  35     a=input(' 新賦值 :').strip()
  36     setattr(d,stres1,a)# 對(duì)象增加一個(gè)屬性  , 賦值 返回這個(gè)屬性的值
  37     print(stres1)
  38     print(getattr(d,stres1))
  39
  40 print(d.__dict__)
  41 dela=input(' 刪除屬性 :').strip()
  42
  43 if hasattr(d,dela):# 如果已經(jīng)存在
  44     delattr(d,dela)# 進(jìn)行刪除
  45     print(' 刪除成功 ')
  46
  47 print(d.__dict__)
  View Code
來(lái)源: 博客園
您還未登錄,請(qǐng)先登錄

熱門帖子

最新帖子

?