亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

新邵县| 柘城县| 宣汉县| 城固县| 赤水市| 高阳县| 东至县| 浙江省| 全南县| 梨树县| 依兰县| 基隆市| 济源市| 五寨县| 北流市| 紫云| 咸丰县| 临城县| 乌拉特前旗| 舟曲县| 专栏| 大名县| 宜兰市| 武安市| 东乌珠穆沁旗| 丹凤县| 文化| 秦安县| 赞皇县| 焉耆| 锡林浩特市| 德保县| 郯城县| 舞钢市| 呼伦贝尔市| 宿迁市| 荣昌县| 安吉县| 嘉义县| 如东县| 德庆县|