91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python的約束、反射

發布時間:2020-07-29 06:51:46 來源:網絡 閱讀:175 作者:ckllf 欄目:編程語言

  1.約束:子類中必須繼承父類的方法,不然會報錯。

  class Base(object):

  def send(self):

  raise NotImplementedError('子類中必須實現send方法')

  class Foo(Base):

  """如果不寫send方法,會返回錯誤信息"""

  def send(self):

  print('234')

  obj = Foo()

  obj.send()

  2.反射(反射就是把字符串反射成內存對象)

  反射中四個重要的方法

  getattr 獲取指定字符串名稱的對象屬性

  setattr 為對象設置一個對象

  hasattr 判斷對象是否有對應的對象(字符串)

  delattr 刪除指定屬性

  #!/usr/bin/env python

  # -*- coding: utf-8 -*-

  # Author: rex.cheny

  # E-mail: rex.cheny@outlook.com

  class TestObj(object):

  def __init__(self, name, age):

  self.name = name

  self.age = age

  def displayName(self):

  print("displayName方法執行,打印姓名:", self.name)

  def AAA(self):

  print("I am AAA.")

  def main():

  to = TestObj("Tom", 23)

  # 查看 to 實例里面是否有 name 這個屬性

  if hasattr(to, "name"):

  print("實例 to 中有 name 屬性。")

  print(getattr(to, "name"))

  else:

  print("實例 to 中沒有 name 屬性。")

  if hasattr(to, "displayName"):

  print("實例 to 中有 displayName 屬性。")

  getattr(to, "displayName")()

  else:

  print("實例 to 中沒有 displayName 屬性。")

  if hasattr(to, "AAA"):

  print("實例 to 中有 AAA 屬性。")

  getattr(to, "AAA")()

  else:鄭州婦科醫院 http://www.zyfuke.com/

  print("實例 to 中沒有 AAA 屬性,將會設置。")

  setattr(to, "AAA", AAA) # 參數:實例、方法名稱、具體方法 相當于 to.AAA = AAA 第一個AAA是函數在實例中的名稱, 第二個AAA是把哪個函數放進去,兩者只是恰好這里名稱一樣

  # to.AAA(to) # 這里一定要主動傳遞一個實例進去,因為它不會自動裝配self

  getattr(to, "AAA")(to)

  if __name__ == '__main__':

  main()

  舉個例子

  class TestObj(object):

  def __init__(self, name):

  self.name = name

  def displayname(self):

  print(self.name)

  def main():

  to = TestObj(name="Tom")

  cmd = input("輸入:")

  if hasattr(to, cmd):

  pass

  else:

  setattr(to, cmd, displayname)

  func = getattr(to, cmd)

  func(to)

  if __name__ == '__main__':

  main()

  以字符串的形式使用模塊的方法

  #!/usr/bin/env python

  # -*- coding: utf-8 -*-

  # Author: rex.cheny

  # E-mail: rex.cheny@outlook.com

  temp = "re" # 要引入的模塊

  func = "compile" # 要使用的方法

  model = __import__(temp) # 導入模塊

  function = getattr(model, func) # 找到模塊中的屬性

  def main():

  txt = "hj123uo"

  pattern = function(r"[0-9]+") # 這里執行funcation()就等于執行re.compile()函數

  print(model.search(pattern, txt).group())

  if __name__ == '__main__':

  main()


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

城市| 洛南县| 祁阳县| 文登市| 高州市| 鹿邑县| 连城县| 青冈县| 卓尼县| 仁寿县| 龙南县| 任丘市| 尉氏县| 柏乡县| 仙桃市| 阿拉善左旗| 西乡县| 平陆县| 上林县| 水城县| 吉林市| 花垣县| 涪陵区| 九寨沟县| 垣曲县| 慈溪市| 黎川县| 凌云县| 视频| 买车| 安丘市| 西吉县| 句容市| 贡嘎县| 军事| 德庆县| 剑阁县| 安岳县| 淳化县| 中牟县| 新邵县|