最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python?面向?qū)ο缶幊淘斀?/h1>
 更新時(shí)間:2022年12月30日 08:41:09   作者:Hovey  
這篇文章主要介紹了Python?面向?qū)ο缶幊淘斀獾南嚓P(guān)資料,需要的朋友可以參考下

Python 面向?qū)ο?/h2>

方法沒(méi)有重載#

在其他語(yǔ)言中,可以定義多個(gè)重名的方法,只要保證方法簽名唯一即可。方法簽名包含3個(gè)部分:方法名、參數(shù)數(shù)量、參數(shù)類型。

Python 中,方法的的參數(shù)沒(méi)有聲明類型(調(diào)用時(shí)確定參數(shù)的類型),參數(shù)的數(shù)量也可以由
可變參數(shù)控制。因此,Python 中是沒(méi)有方法的重載的。定義一個(gè)方法即可有多種調(diào)用方式,相當(dāng)于實(shí)現(xiàn)了其他語(yǔ)言中的方法的重載。

如果我們?cè)陬愺w中定義了多個(gè)重名的方法,只有最后一個(gè)方法有效。

建議:不要使用重名的方法!Python 中方法沒(méi)有重載。

#Python 中沒(méi)有方法的重載。定義多個(gè)同名方法,只有最后一個(gè)有效

class Person:

    def say_hi(self):
        print("hello")

    def say_hi(self,name):
        print("{0},hello".format(name))

p1 = Person()

#p1.say_hi() #不帶參,報(bào)錯(cuò):TypeError: say_hi() missing 1 required positional argument: 'name' 

p1.say_hi("陳浩")

方法的動(dòng)態(tài)性#

Python 是動(dòng)態(tài)語(yǔ)言,我們可以動(dòng)態(tài)的為類添加新的方法,或者動(dòng)態(tài)的修改類的已有的方法。

#測(cè)試方法的動(dòng)態(tài)性
class Person:
    def work(self):
        print("努力上班!")

def play_game(self):
    print("玩游戲")

def work2(self):
    print("好好工作,努力上班!")

Person.play = play_game
Person.work = work2
p = Person()

p.play()    # 玩游戲
p.work()    # 好好工作,努力上班!

我們可以看到,Person 動(dòng)態(tài)的新增了 play_game 方法,以及用 work2 替換了 work 方法。

私有屬性和私有方法(實(shí)現(xiàn)封裝)#

Python 對(duì)于類的成員沒(méi)有嚴(yán)格的訪問(wèn)控制限制,這與其他面向?qū)ο笳Z(yǔ)言有區(qū)別。關(guān)于私有屬性和私有方法,有如下要點(diǎn):

  • 通常我們約定,兩個(gè)下劃線("__")開(kāi)頭的屬性是私有的(private)。其他為公共的(public)。
  • 類內(nèi)部可以訪問(wèn)私有屬性(方法)
  • 類外部不能直接訪問(wèn)私有屬性(方法)
  • 類外部可以通過(guò)“_類名__私有屬性(方法)名”訪問(wèn)私有屬性(方法)

【注】方法本質(zhì)上也是屬性!只不過(guò)是可以通過(guò)()執(zhí)行而已。所以,此處講的私有屬性和公有屬性,也同時(shí)講解了私有方法和公有方法的用法。如下測(cè)試中,同時(shí)也包含了私有方法和公有方法的例子。

【測(cè)試】私有屬性和公有屬性使用測(cè)試

#測(cè)試私有屬性、私有方法
class Employee: 
    __company = "Danone" #私有類屬性. 通過(guò) dir 可以查到_Employee__company
    
    def __init__(self, name, age):
        self.name = name
        self.__age = age #私有實(shí)例屬性

    def say_company(self):
        print("我的公司是:",Employee.__company) #類內(nèi)部可以直接訪問(wèn)私有屬性
        print(self.name,"的年齡是:",self.__age)
        
    def __work(self): #私有實(shí)例方法 通過(guò) dir 可以查到_Employee__work
        return "工作!好好工作,好好賺錢,娶個(gè)媳婦!"

p1 = Employee("陳浩",18)

print(p1.name) 
# 陳浩

print(dir(p1)) 
# ['_Employee__age', '_Employee__company', '_Employee__work', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getstate__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'name', 'say_company']

p1.say_company()
# 我的公司是: Danone
# 陳浩 的年齡是: 18

print(p1._Employee__age) #通過(guò)這種方式可以直接訪問(wèn)到私有屬性 。通過(guò) dir 可以查到屬性:_Employee__age
# 18

print(p1._Employee__work())
# 工作!好好工作,好好賺錢,娶個(gè)媳婦!

#print(p1.__age) #直接訪問(wèn)私有屬性,報(bào)錯(cuò)
#print(p1.__work()) #直接訪問(wèn)私有方法,報(bào)錯(cuò)

@property 裝飾器

@property 可以將一個(gè)方法的調(diào)用方式變成“屬性調(diào)用”

class Employee:

    def __init__(self, name, salary):
        self.name = name
        self.__salary = salary


    @property               #getter方法 
    def salary(self):
        return self.__salary

    @salary.setter          #setter方法
    def salary(self, salary):
        self.__salary = salary

    @salary.deleter         #deleter方法
    def salary(self):
        self.__salary = 0



emp = Employee("陳浩", 6000)
print("{0}當(dāng)前的薪資是{1}".format(emp.name,emp.salary))
# 陳浩當(dāng)前的薪資是6000

print("*"*12, "加薪啦", "*"*12)
emp.salary = 10000
print("{0}當(dāng)前的薪資是{1}".format(emp.name,emp.salary))
# 陳浩當(dāng)前的薪資是10000

print("*"*12, "離職了", "*"*12)
del emp.salary
print("{0}當(dāng)前的薪資是{1}".format(emp.name,emp.salary))
# 陳浩當(dāng)前的薪資是0

@property 主要用于幫助我們處理屬性的讀操作、寫(xiě)操作。對(duì)于某一個(gè)屬性,我們可以直接通過(guò)類名.方法名 = 值,進(jìn)行賦值操作。

屬性和方法命名總結(jié)#

  • _xxx:保護(hù)成員,不能用“from module import * ”導(dǎo)入,只有類對(duì)象和子類對(duì)象能訪問(wèn)這些成員。
  • __xxx__:系統(tǒng)定義的特殊成員
  • __xxx: 類中的私有成員,只有類對(duì)象自己能訪問(wèn),子類對(duì)象也不能訪問(wèn)。(但,在類外部可以通過(guò)“對(duì)象名. _類名__xxx”這種特殊方式訪問(wèn)。Python 不存在嚴(yán)格意義的私有成員)

注:再次強(qiáng)調(diào),方法和屬性都遵循上面的規(guī)則

到此這篇關(guān)于Python 面向?qū)ο缶幊淘斀?的文章就介紹到這了,更多相關(guān)Python 面向?qū)ο?內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Pyhacker實(shí)現(xiàn)端口掃描器

    Pyhacker實(shí)現(xiàn)端口掃描器

    這篇文章主要為大家介紹了Pyhacker實(shí)現(xiàn)端口掃描器的過(guò)程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • Django中的ajax請(qǐng)求

    Django中的ajax請(qǐng)求

    今天小編就為大家分享一篇關(guān)于Django中的ajax請(qǐng)求,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • python之生成多層json結(jié)構(gòu)的實(shí)現(xiàn)

    python之生成多層json結(jié)構(gòu)的實(shí)現(xiàn)

    今天小編就為大家分享一篇python之生成多層json結(jié)構(gòu)的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-02-02
  • Python實(shí)現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo)的方法詳解

    Python實(shí)現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo)的方法詳解

    ICO是一種圖標(biāo)文件格式,圖標(biāo)文件可以存儲(chǔ)單個(gè)圖案、多尺寸、多色板的圖標(biāo)文件。本文將利用Python實(shí)現(xiàn)普通圖片轉(zhuǎn)ico圖標(biāo),感興趣的小伙伴可以了解一下
    2022-11-11
  • 利用Python判斷整數(shù)是否是回文數(shù)的3種方法總結(jié)

    利用Python判斷整數(shù)是否是回文數(shù)的3種方法總結(jié)

    這篇文章主要給大家介紹了關(guān)于如何利用Python判斷整數(shù)是否是回文數(shù)的3種方總結(jié),回文數(shù)是指正序(從左向右)和倒序(從右向左)讀都是一樣的整數(shù),需要的朋友可以參考下
    2021-07-07
  • Python爬蟲(chóng)爬取愛(ài)奇藝電影片庫(kù)首頁(yè)的實(shí)例代碼

    Python爬蟲(chóng)爬取愛(ài)奇藝電影片庫(kù)首頁(yè)的實(shí)例代碼

    這篇文章主要介紹了Python爬蟲(chóng)爬取愛(ài)奇藝電影片庫(kù)首頁(yè)的實(shí)例代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-05-05
  • python 獲取utc時(shí)間轉(zhuǎn)化為本地時(shí)間的方法

    python 獲取utc時(shí)間轉(zhuǎn)化為本地時(shí)間的方法

    今天小編就為大家分享一篇python 獲取utc時(shí)間轉(zhuǎn)化為本地時(shí)間的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-12-12
  • python人工智能tensorflow函數(shù)tf.layers.dense使用方法

    python人工智能tensorflow函數(shù)tf.layers.dense使用方法

    這篇文章主要介紹了python人工智能tensorflow函數(shù)tf.layers.dense的使用方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 關(guān)于numpy版本兼容問(wèn)題解決方案

    關(guān)于numpy版本兼容問(wèn)題解決方案

    這篇文章主要給大家介紹了關(guān)于numpy版本兼容問(wèn)題解決方案的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用numpy具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-10-10
  • 揭秘Python?Socket網(wǎng)絡(luò)編程的7種硬核用法

    揭秘Python?Socket網(wǎng)絡(luò)編程的7種硬核用法

    Socket?不僅能做聊天室,還能干一大堆硬核操作,這篇文章就帶大家看看?Python?網(wǎng)絡(luò)編程的7種超實(shí)用玩法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-04-04

最新評(píng)論

乌拉特中旗| 马关县| 林州市| 鲁山县| 渭南市| 康保县| 明溪县| 富阳市| 涟源市| 嘉黎县| 吉林省| 麻阳| 江都市| 嘉禾县| 牟定县| 汉源县| 台州市| 西盟| 肥乡县| 台前县| 山东省| 三都| 甘孜| 永兴县| 综艺| 临湘市| 安徽省| 香港 | 寻乌县| 静海县| 仁怀市| 霍邱县| 阳朔县| 瑞安市| 宾阳县| 杂多县| 湖北省| 彭泽县| 黄冈市| 晋中市| 山西省|