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

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

python面向?qū)ο笥惺裁刺卣?創(chuàng)新互聯(lián)

小編給大家分享一下python面向?qū)ο笥惺裁刺卣?,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

在哈密等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需定制網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計(jì),全網(wǎng)整合營(yíng)銷推廣,外貿(mào)網(wǎng)站建設(shè),哈密網(wǎng)站建設(shè)費(fèi)用合理。

封裝、繼承、多態(tài)。

1、封裝

是指在面向?qū)ο缶幊痰乃枷胫校瑢?duì)代碼進(jìn)行高度的封裝,封裝又叫包裝。封裝在編程中的核心作用:整體化代碼,便于攜帶,提高數(shù)據(jù)或算法的安全性

封裝的體現(xiàn)

# 求出1-200之間的素?cái)?shù)
def getnum():
    s = [i for i in range(1, 201)]
    def fun(x):
            for i in range(2, x):
                if x % i == 0:
                    return False
            else:
                return True

    num = filter(fun, s)
    return  num

print(list(getnum()))

2、繼承

在程序中繼承是指描述的是多個(gè)類之間的一個(gè)所屬關(guān)系。例如一個(gè)類A里面的所有的屬性和方法可以復(fù)用,這個(gè)時(shí)候可以通過(guò)繼承的方式,傳遞到類B里面,這這里A類稱之為父類(基類) B類稱之為子類(派生類)。

在Python中子類(派生類)會(huì)繼承父類(基類),那么子類就及繼承了父類中的屬性和方法,簡(jiǎn)化了子類的設(shè)計(jì)問(wèn)題,便于后期的維護(hù)和升級(jí)

3、單繼承

一個(gè)類只繼承了一個(gè)父類。

如果子類繼承了父類,子類就繼承了父類的屬性和方法。

class A(object):
	pass

class B(A)
	pass

#	B是子類,A是父類,B繼承A


class A(object):
    def __init__(self):
        self.money = 1000000
        self.blood = "A"

    def work(self):
        print("我是一名工程師")


class B(A):
    pass

b = B()
print(b.money)
print(b.blood)
b.work()
#輸出結(jié)果
#1000000
#A
#我是一名工程師

4、多繼承

一個(gè)類繼承了多個(gè)父類

子類繼承了多個(gè)父類,則子類就會(huì)繼承父類的所有的不同名的方法

class A(object):
	pass

class B(object)
	pass

class C(A,B):
	pass

#子類C繼承了A,B兩個(gè)父類


class Tang(object):
    def __init__(self):
        self.jn1="念經(jīng)"

    def dyj(self):
        print("我能打妖精")

class Puti(object):
    def __init__(self):
        self.jn2="筋斗云"
    def sgz(self):
        print("我能耍棍子")

class Sun(Tang,Puti):
    def __init__(self):
        self.jn3="七十二變"
        Tang.__init__(self)  # 調(diào)用同名父類的方法
        Puti.__init__(self)  # 調(diào)用同名父類的方法
    def zhi(self):
        print("還是弼馬溫")

sunwukong=Sun()
print(sunwukong.jn1,sunwukong.jn2,sunwukong.jn3)
sunwukong.dyj()
sunwukong.sgz()
sunwukong.zhi()

#輸出結(jié)果
#念經(jīng) 筋斗云 七十二變
#我能打妖精
#我能耍棍子
#還是弼馬溫

5、多層繼承

class A(object):
	pass

class B(A)
	pass

class C(B):
	pass

#B繼承A,C繼承B

class Puti(object):
    def __init__(self):
        self.model = "筋斗云"

    def kongfu(self):
        print("72般變化")


class SunMonken(Puti):
    def __init__(self):
        self.wuqi = "金箍棒"

    def look(self):
        print("火眼金睛")


class ChenXiang(SunMonken):
    def __init__(self):
        # SunMonken.__init__()
        # super函數(shù)會(huì)自動(dòng)查找參數(shù)中子類的“父類”按照繼承鏈的順序找其后一個(gè)
        # super(子類名稱,self).子類中的同名方法
        # super(ChenXiang,self).__init__()
        super().__init__()
        super(SunMonken,self).__init__()
        self.bao = "寶蓮燈"

print(ChenXiang.__mro__)

cx = ChenXiang()
print(cx.model)
print(cx.wuqi)
print(cx.bao)
cx.kongfu()
cx.look()
#輸出結(jié)果
#()
#筋斗云
#金箍棒
#寶蓮燈
#72般變化
#火眼金睛

知識(shí)點(diǎn)

1、如果多個(gè)父類的方法名不相同,子類會(huì)全部繼承。

2、如果多個(gè)父類的方法名相同,子類會(huì)繼承第一個(gè)父類的。

3、如果子類也有父類的同名方法,那么子類就會(huì)選擇自己的這個(gè)方法。

4、如果子類中也有__init__方法,那么所有的父類的屬性都不會(huì)被繼承。

5、通過(guò)一個(gè)類創(chuàng)建對(duì)象,必須要執(zhí)行一次init方法,找init方法的順序要遵循類的繼承鏈。

查看一個(gè)類的繼承鏈
   類名.__mro__

6、子類重寫父類的同名方法和屬性

重寫

是指在子類中重新去寫父類中已經(jīng)擁 有的方法,并且在子類中保持這個(gè)方法的名字不變,只有方法體發(fā)生改變,那么調(diào)用子類對(duì)象的這個(gè)方法以后都是子類中所寫的。

場(chǎng)景

子類繼承了父類,父類不能滿足子類的需求。子類重寫父類的同名方法。

但是子類還想在其類內(nèi)部使用父類的同名方法。

class Shi(object):
    def work(self,x,y):
        return x+y

class Tu(Shi):
    def work(self,x,y):
        return Shi.work(self,x,y)/2
    pass

方式

       #子類中:
       父類名.父類的同名方法(self)
       #使用super
       #super函數(shù)是用來(lái)獲取指定的子類在繼承鏈中的后一個(gè)類給當(dāng)前子類的self
       super(子類名,self).父類同名方法
       #一般情況下獲取當(dāng)前子類的直接父類的同名方法可以省略括號(hào)中的參數(shù)
       super().父類同名方法

7、多態(tài)

不同子類的對(duì)象調(diào)用相同的父類方法,產(chǎn)生不同的結(jié)果。

Python中多態(tài)是指一類事物有多種形態(tài)。比如動(dòng)物有多種形態(tài),人,狗,貓,等等。文件有多種形態(tài):文本文件,可執(zhí)行文件。

特點(diǎn)

1、多態(tài)可以增加代碼的靈活度

2、以繼承和重寫方法為前提

3、是調(diào)用方法的技巧,不會(huì)影響類的原本設(shè)計(jì)

# 1.創(chuàng)建一個(gè)人類,這個(gè)類里面的屬性:(姓名、年齡、身高等),要求人的年齡大于0小于300,如果用戶填寫小于0則默認(rèn)為0
class Person(object):
    def __init__(self, name,age, height):
        self.name = name
        self.__age = 0
        self.height = height
        self.set_age(age)

    def set_age(self, age):
        if 0 < age < 300:
            self.__age = age
        elif age < 0:
            self.__age = 0
        elif age > 300:
            self.__age = 300

    def get_age(self):
        return self.__age


zs = Person("張三",500, 1.75)
zs.set_age(-10)
print("姓名:%s,年齡:%d歲,身高:%.2f" % (zs.name, zs.get_age(), zs.height))

#輸出結(jié)果
#姓名:張三,年齡:0歲,身高:1.75

看完了這篇文章,相信你對(duì)python面向?qū)ο笥惺裁刺卣饔辛艘欢ǖ牧私?,想了解更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)-成都網(wǎng)站建設(shè)公司行業(yè)資訊頻道,感謝各位的閱讀!


網(wǎng)站名稱:python面向?qū)ο笥惺裁刺卣?創(chuàng)新互聯(lián)
當(dāng)前URL:http://weahome.cn/article/jceih.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部