亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Python-面向對象

劍圣OMG Linux系統工程師
難度中級
時長59分
學習人數
綜合評分9.13
144人評價 查看評價
9.4 內容實用
9.0 簡潔易懂
9.0 邏輯清晰
  • 用@property定義的函數,可以再調用時,直接訪問屬性使用,不需要引用的時候加括號()

    查看全部
  • 類方法是@classmethod,帶入參數是cls(默認使用)

    查看全部
  • class?Programer(object):
    ?"""docstring?for?Programer"""
    ?def?__init__(self,?name,age):
    ??super(Programer,?self).__init__()
    ??self.name?=?name
    ??self.age?=?age?def?__getattribute__(self,name):??#return?getattr(self,name)????#錯誤寫法,會引起無限遞歸??#return?self.__dict__[name]???#錯誤寫法,會引起無限遞歸??return?super(Programer,self).__getattribute__(name)??#正確??def?__setattr__(self,name,value):??#setattr(self,name,value)???#錯誤寫法,會引起無限遞歸??self.__dict__[name]=value???#正確?if?__name__=='__main__':????p=Programer('lrf',25)????print(p.name)
    查看全部
  • #函數
    #方法:類的內部函數為方法,其他單寫的為函數class?Programer(object):????hobby='Play?Computer'????"""docstring?for?Programer"""????def?__init__(self,?name,age,weight):????????super(Programer,?self).__init__()????????self.name?=?name???????#普通變量????????self._age?=?age????????#私有變量,但可以外部訪問????????self.__weight?=?weight?#私有變量,但可以通過_Programer.__weight來訪問????@classmethod????def?get_hobby(self):????????return?self.hobby??????#@classmethod直接Programer.get_hobby訪問,類似于C的靜態????????@property????def?get_weight(self):??????#@property定義屬性????????return?self.__weight??????def?self_introductioon(self):??#通過類的實例來訪問????????print?('My?Name?is?%s?\nI?am?%s?years?old\n'?%?(self.name,self._age))class?BackendProgramer(Programer):??"""docstring?for?ClassName"""??def?__init__(self,?name,age,weight,language):??#類的繼承????super(BackendProgramer,?self).__init__(name,age,weight)????self.language?=?language??def?self_introductioon(self):??#類方法的重寫?????print?('My?Name?is?%s?\n?My?favorite?language?is?%s'?%?(self.name,self.language))def?introduce(programer):????if?isinstance(programer,Programer):??#判斷是不是該類型?多態???????programer.self_introductioon()if?__name__=='__main__':???programer=Programer('lrf',25,80)???print?(dir(programer))??????#類的屬性,包括object之類的???print?(programer.__dict__)??#類的屬性,內部屬性???print?(Programer.get_hobby())???print?(programer.get_weight)???programer.self_introductioon()???backendProgramer=BackendProgramer('Tim',30,70,'Python')???introduce(programer)???introduce(backendProgramer)

    查看全部
    0 采集 收起 來源:類的多態

    2019-11-05

  • 定義類的方法
    #函數
    #方法:類的內部函數為方法,其他單寫的為函數
    class?Programer(object):????
    hobby='Play?Computer'????
    """docstring?for?Programer"""????
    def?__init__(self,?name,age,weight):????????
    super(Programer,?self).__init__()????????
    self.name?=?name???????#普通變量????????
    self._age?=?age????????#私有變量,但可以外部訪問???self.__weight?=?weight?#私有變量,但可以通過_Programer.__weight來訪問????
    
    @classmethod????
    def?get_hobby(self):????????
    return?self.hobby??????#@classmethod直接Programer.get_hobby訪問,類似于C的靜態????????
    
    @property????
    def?get_weight(self):??????定義屬性????????return?self.__weight??
    ????
    def?self_introductioon(self):??#通過類的實例來訪問????????print?('My?Name?is?%s?\nI?am?%s?years?old\n'?%?(self.name,self._age))
    
    if?__name__=='__main__':??
    ?programer=Programer('lrf',25,80)???
    ?print?(dir(programer))??????#類的屬性,包括object之類的???
    ?print?(programer.__dict__)??#類的屬性,內部屬性???print?(Programer.get_hobby())???
    ?print?(programer.get_weight)???
    ?programer.self_introductioon()

    查看全部
  • 對象:類的一個實例
    查看全部
  • 看看
    查看全部
  • 有人有關于爬蟲學習的網站嗎?
    查看全部
  • python類的主要魔術方法:

    1,輸出方法

    __str__(), __repr__(), __dir__()

    2,比較運算符

    __eq__(), __gt__(), __lt__(), __ge__(), __le__()

    3,算術運算符

    _add__(), __sub__(), __mul__(), __div__()


    查看全部
  • class Person(object):

    ????def __init__(self, name, age):

    ????????self.name = name

    ????????self.__age = age

    p = Person('zhao', 30)

    1,__age屬性在外部不能訪問,但可以通過 _Person__age 這樣的形式訪問到;

    2,調用 p.__dict__() 可以得到包含所有屬性名和屬性值的字典;

    查看全部
  • 避免注釋掉的三個錯誤寫法,會造成無限遞歸。

    查看全部
  • python支持重載運算符,使用magic mathod?方式。例如圖中的__add__重載完了之后,就可以使用 p1+p2了。

    查看全部
  • 對象實例化過程會經歷兩個magic?method(魔術方法),但我們往往不自己定義 __new__(cls)

    查看全部
  • python中可以使用繼承然后重寫父類方法來實現多態

    查看全部
    0 采集 收起 來源:類的多態

    2019-10-13

  • 子類應當主動調用父類的構造函數:

    def?__init__(self,?name,?age,?weight,?language):
    ????super(BackendProgrammer,?self).__init__(name,?age,?weight)
    ????self.language?=?language


    查看全部

舉報

0/150
提交
取消
課程須知
熱愛編程,對Python基礎知識已經掌握。
老師告訴你能學到什么?
1.面向對象的理論基礎 2.Python基本的面向對象特性 3.深入的了解Python面向對象

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!