国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python 3 學(xué)習(xí)筆記之——面向?qū)ο?

yzzz / 3318人閱讀

摘要:類的介紹類用來描述具有相同的屬性和方法的對象的集合。類變量類變量在整個實(shí)例化的對象中是公用的。類的定義語法格式如下類有一個名為的特殊方法,也即是構(gòu)造函數(shù),該方法會在定義對象的時候自動調(diào)用,可以通過參數(shù)傳遞來對類的實(shí)例進(jìn)行設(shè)定。

1. 類的介紹
類(Class) 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類的實(shí)例,類是對象的抽象。

方法:類中定義的函數(shù)。

類變量:類變量在整個實(shí)例化的對象中是公用的。類變量定義在類中且在函數(shù)體之外。類變量通常不作為實(shí)例變量使用。

方法變量:定義在方法中的變量。

繼承:即一個派生類(derived class)繼承基類(base class)的屬性和方法。

方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其進(jìn)行改寫,這個過程叫方法的覆蓋(override),也成為方法的重寫。

2. 類的定義

語法格式如下:

class ClassName:
    
    .
    .
    .
    

類有一個名為 _init_() 的特殊方法,也即是構(gòu)造函數(shù),該方法會在定義對象的時候自動調(diào)用,可以通過參數(shù)傳遞來對類的實(shí)例進(jìn)行設(shè)定。

在類內(nèi)部,使用 def 關(guān)鍵字來定義一個方法,與一般函數(shù)不同,類方法必須包含參數(shù) self,并且作為第一個參數(shù),self 代表類的實(shí)例,類似于 C++ 中的 this 指針。

類的私有屬性 __private_attrs 以兩個下劃線開頭,在類內(nèi)部的方法中使用時用 self.__private_attrs 調(diào)用,不能在類外部訪問類的私有屬性。

類的私有方法 __private_method 以兩個下劃線開頭,只能在類的內(nèi)部調(diào)用,不能在類外部調(diào)用。

class person:
    
    instances = 0                # 類變量,所有類公用
    
    def __init__(self, name, age, weight):
        self.name = name         # 公有屬性
        self.age = age
        self.__weight = weight   # 私有屬性,在類外無法直接訪問
        
        person.instances += 1;   # 通過類來訪問類變量
    
    def tell_a_secret(self):     # 私有方法
        print("Tell you a secret, my weight is {} kg.".format(self.__weight))
    
    def speak(self):             # 公有方法
        print("My name is {}, I"m {} years old.".format(self.name, self.age))
        self.tell_a_secret()


people = person("seniusen", 21, 60)
people.speak()
print(people.instances)
print(people.instances) # 通過實(shí)例也可以訪問類變量

# My name is seniusen, I"m 21 years old.
# Tell you a secret, my weight is 60 kg.
# 1
# 1
3. 類的單繼承

語法格式如下:

class DerivedClassName(BaseClassName1):
    
    .
    .
    .
    

注意圓括號中基類的順序,若是基類中有相同的方法名,而在子類使用時未指定,則 Python 從左至右進(jìn)行搜索。即方法在子類中未找到時,從左到右查找基類中是否包含該方法

基類名 BaseClassName 必須與派生類定義在一個作用域,如果基類定義在另一個模塊,這時候我們還可以用一個表達(dá)式來定義派生類,class DerivedClassName(modname.BaseClassName):

class student(person):
        
    def __init__(self, name, age, weight, major):
        
        person.__init__(self, name, age, weight) # 調(diào)用父類的構(gòu)造函數(shù),此時必須給定 self 參數(shù)
        # super(student, self).__init__(name, age, weight) 或者利用 super() 函數(shù)
        self.major = major

    # 重寫父類的方法
    def speak(self): # 公有方法
        person.speak(self)
        print("My major in college is {}.".format(self.major))

stu = student("seniusen", 21, 60, "Automation")
stu.speak()
print(student.instances)
print(stu.instances) # 通過實(shí)例也可以訪問類變量

# My name is seniusen, I"m 21 years old.
# Tell you a secret, my weight is 60 kg.
# My major in college is Automation.
# 2
# 2
3. 類的多繼承

語法格式如下:

class DerivedClassName(Base1, Base2, Base3):
    
    .
    .
    .
    
class teacher:
      
    def __init__(self, title, topic):
        self.title = title 
        self.topic = topic
    
    def speak(self): # 公有方法
        print("I"m a {} , my research topic is {}.".format(self.title, self.topic))

# 繼承自 teacher 和 student 的子類
class sample(teacher, student):
    
    def __init__(self, name, age, weight, major, title, topic):
        student.__init__(self, name, age, weight, major)
        teacher.__init__(self, title, topic)

test = sample("seniusen", 21, 60, "Automation", "prefessor", "CV")
test.speak() # 沒有指定方法,從左到右查找,這里調(diào)用了 teacher 類的 speak() 方法

# I"m a prefessor , my research topic is CV.

利用 super() 函數(shù)可以調(diào)用被子類重寫的父類中的方法。

class Parent:           # 定義父類
    
    def myMethod(self):
        print ("Method form Parent class!")

        
class Child(Parent):    # 定義子類
    
    def myMethod(self):
        print ("Method form Child class!")

a = Child()                # 子類實(shí)例
a.myMethod()               # 子類調(diào)用重寫方法
super(Child, a).myMethod() #用子類對象調(diào)用父類已被覆蓋的方法

# Method form Child class!
# Method form Parent class!

參考資料 菜鳥教程

獲取更多精彩,請關(guān)注「seniusen」!

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/44881.html

相關(guān)文章

  • Python入門學(xué)習(xí)筆記匯總

    摘要:導(dǎo)語本文章匯總了本人在學(xué)習(xí)基礎(chǔ)之緒論篇數(shù)據(jù)結(jié)構(gòu)篇函數(shù)篇面向?qū)ο笃刂屏鞒唐驮幊唐獙W(xué)習(xí)筆記的鏈接,打算入門的朋友們可以按需查看并交流。 導(dǎo)語:本文章匯總了本人在學(xué)習(xí)Python基礎(chǔ)之緒論篇、數(shù)據(jù)結(jié)構(gòu)篇、函數(shù)篇、面向?qū)ο笃⒖刂屏鞒唐驮幊唐獙W(xué)習(xí)筆記的鏈接,打算入門Python的朋友們可以按需查看并交流。 第一部分:緒論篇 1、Python數(shù)據(jù)模型 第二部分:數(shù)據(jù)結(jié)構(gòu)篇 2、序列構(gòu)成...

    U2FsdGVkX1x 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.30 - 學(xué)習(xí) Python 來做一些神奇好玩的事情吧

    摘要:學(xué)習(xí)筆記七數(shù)學(xué)形態(tài)學(xué)關(guān)注的是圖像中的形狀,它提供了一些方法用于檢測形狀和改變形狀。學(xué)習(xí)筆記十一尺度不變特征變換,簡稱是圖像局部特征提取的現(xiàn)代方法基于區(qū)域圖像塊的分析。本文的目的是簡明扼要地說明的編碼機(jī)制,并給出一些建議。 showImg(https://segmentfault.com/img/bVRJbz?w=900&h=385); 前言 開始之前,我們先來看這樣一個提問: pyth...

    lifesimple 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.40 - 2018,來學(xué)習(xí)一門新的編程語言吧!

    摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運(yùn)行在之上。它通過編輯類工具,帶來了先進(jìn)的編輯體驗,增強(qiáng)了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...

    caspar 評論0 收藏0
  • SegmentFault 技術(shù)周刊 Vol.40 - 2018,來學(xué)習(xí)一門新的編程語言吧!

    摘要:入門,第一個這是一門很新的語言,年前后正式公布,算起來是比較年輕的編程語言了,更重要的是它是面向程序員的函數(shù)式編程語言,它的代碼運(yùn)行在之上。它通過編輯類工具,帶來了先進(jìn)的編輯體驗,增強(qiáng)了語言服務(wù)。 showImg(https://segmentfault.com/img/bV1xdq?w=900&h=385); 新的一年不知不覺已經(jīng)到來了,總結(jié)過去的 2017,相信小伙們一定有很多收獲...

    nihao 評論0 收藏0

發(fā)表評論

0條評論

yzzz

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<