真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python的約束、反射

1.約束:子類中必須繼承父類的方法,不然會(huì)報(bào)錯(cuò)。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比龍安網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式龍安網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋龍安地區(qū)。費(fèi)用合理售后完善,十余年實(shí)體公司更值得信賴。

class Base(object):

def send(self):

raise NotImplementedError('子類中必須實(shí)現(xiàn)send方法')

class Foo(Base):

"""如果不寫send方法,會(huì)返回錯(cuò)誤信息"""

def send(self):

print('234')

obj = Foo()

obj.send()

2.反射(反射就是把字符串反射成內(nèi)存對(duì)象)

反射中四個(gè)重要的方法

getattr 獲取指定字符串名稱的對(duì)象屬性

setattr 為對(duì)象設(shè)置一個(gè)對(duì)象

hasattr 判斷對(duì)象是否有對(duì)應(yīng)的對(duì)象(字符串)

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方法執(zhí)行,打印姓名:", self.name)

def AAA(self):

print("I am AAA.")

def main():

to = TestObj("Tom", 23)

# 查看 to 實(shí)例里面是否有 name 這個(gè)屬性

if hasattr(to, "name"):

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

print(getattr(to, "name"))

else:

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

if hasattr(to, "displayName"):

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

getattr(to, "displayName")()

else:

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

if hasattr(to, "AAA"):

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

getattr(to, "AAA")()

else:鄭州婦科醫(yī)院 http://www.zyfuke.com/

print("實(shí)例 to 中沒有 AAA 屬性,將會(huì)設(shè)置。")

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

# to.AAA(to) # 這里一定要主動(dòng)傳遞一個(gè)實(shí)例進(jìn)去,因?yàn)樗粫?huì)自動(dòng)裝配self

getattr(to, "AAA")(to)

if __name__ == '__main__':

main()

舉個(gè)例子

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) # 導(dǎo)入模塊

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

def main():

txt = "hj123uo"

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

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

if __name__ == '__main__':

main()


當(dāng)前題目:python的約束、反射
網(wǎng)頁路徑:http://weahome.cn/article/iecocp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部