欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

python基礎編程——類和實例

系統 1885 0

  在了解類和實例之前,需要先了解什么是面向對象,什么又是面向過程。面向過程是以過程為中心實現一步步操作(相互調用,類似流水線思想);面向對象是以事物為中心,某個事物可以擁有自己的多個行為,而另一個事物也可以擁有自己的多個行為。

  面向對象的基礎:

    對象:沒有具體的事物,只能說是一切皆對象。如人、汽車、國家,.......

    對象的屬性和行為:這個對象有什么特征或者有什么行為方式。如人有身高、頭發顏色等屬性,人有睡覺、吃飯等行為

    類:將具有相同特征的屬性和行為的對象抽象出來封裝成一個可以描述多個對象的類。所以就有類是對象的抽象,對象是類的實例

    消息和方法:對象之間的通信傳遞簡稱消息,而方法是實現傳遞消息的可觀效果

    繼承:某個對象是由另一個對象產生的,也可以抽象為某個類是由另一個類產生的,這個對象就可以擁有另個對象的所有屬性和行為

    多態:多個對象的相同行為會產生不一樣的結果

  面向對象的特性:

    由上述我們可以總結出抽象、封裝、繼承、多態4大特性

  本篇博客主要內容就是簡單的講述這4大特性和面向對象的基礎知識,在講述的過程中會擴展一些知識

  抽象

    類是軟件開發過程中對業務相關的具有共同特征的事物的抽象。所以類在編程語言中是抽象的主要表現形式

    我們可以對“人”進行抽象并抽象成Person類,因為人類有一些共同的特征,我們也可以對“動物”進行抽象并抽象成Animal類。

            
              #
            
            
               Person類
            
            
              class
            
            
               Person:
    
            
            
              """
            
            
              
    人的共有特征和行為
    
            
            
              """
            
            
              def
            
            
              __init__
            
            
              (self, high, weight):
        self.high 
            
            =
            
               high
        self.weight 
            
            =
            
               weight

    
            
            
              #
            
            
               說話
            
            
              def
            
            
               speak(self):
        
            
            
              pass
            
            
              #
            
            
               睡覺
            
            
              def
            
            
               sleep(self):
        
            
            
              pass
            
          

    代碼博主只寫了一丟丟Person共有的屬性和行為,有過編程經驗的朋友們都知道一些初始化方法,這里是初始化一些共有的屬性;還定義一些共有的方法;

    在接下來講的應該都是封裝需要講述的

  封裝

    對于封裝,類可以封裝我們上述所說的具有共同屬性和行為的一種方式(大的封裝)。而封裝又不限于類,函數也是可以封裝一些共同的操作。下面涉及的知識都是封裝,只是封裝的方式會略有不同,我們先不談封裝知識。

    我們先對初始化方法進行一個簡單的了解,python類里__init__()方法是對對象的初始化一些屬性的方法,但是這個方法不是創建對象。我們在創建類時,這個__init__()方法就是我們需要放置一些我們考慮多個對象的共同的屬性還有一些需要初始化的操作(調用方法),既然__init__()方法不是創建對象的方法,那么創建對象的方法是哪個呢?__new__()方法。相信朋友們已經見過了這個方法,這個方法在創建類時會自動調用,不需要我們寫出來(待會寫出來用于測試)。這樣明了,創建對象的時候先調用__new__()方法返回一個對象,然后再調用__init__()方法初始化對象的屬性。

            
              class
            
            
               Person:
    
            
            
              def
            
            
              __new__
            
            (cls, *args, **
            
              kwargs):
        
            
            
              #
            
            
               父類調用__new__()返回一個對象
            
            
              return
            
             super().
            
              __new__
            
            
              (cls)

    
            
            
              def
            
            
              __init__
            
            
              (self, high, weight):
        self.high 
            
            =
            
               high
        self.weight 
            
            =
            
               weight


person 
            
            = Person(12, 135)
          

    在類中可以有很多屬性,我這說的很多不是屬性的個數,也不是屬性值的類型,而是屬性的類型。以下代碼里的注釋可以忽略

    屬性的類型有:類屬性、類的私有屬性、類的保護屬性,實例屬性、實例的私有屬性、實例的保護屬性,這里說的保護屬性和私有屬性,在python中沒有嚴格說明,但是功能或者使用保留

      1、類屬性:

        類和實例都可以直接修改并且訪問類屬性

        在實例方法通過實例訪問和修改類屬性

        在類方法通過類名訪問和修改類屬性

        在靜態方法通過類名訪問和修改類的私屬性

        如果實例有與類屬性同名的實例屬性,那么修改和訪問就和類屬性沒有關系了

              
                class
              
              
                 Person:
    
              
              
                #
              
              
                 類的保護屬性初始值“12”
              
              
    count = 
              
                "
              
              
                12
              
              
                "
              
              
                def
              
              
                __init__
              
              
                (self, high, weight):
        self.high 
              
              =
              
                 high
        self.weight 
              
              =
              
                 weight

    
              
              
                def
              
              
                 self_set_count(self, count):
        self.count 
              
              =
              
                 count

    
              
              
                def
              
              
                 self_get_count(self):
        
              
              
                return
              
              
                 self.count

    
              
              
                #
              
              
                 類方法
              
              
                    @classmethod
    
              
              
                def
              
              
                 class_set_count(cls, count):
        cls.count 
              
              =
              
                 count

    @classmethod
    
              
              
                def
              
              
                 class_get_count(cls):
        
              
              
                return
              
              
                 cls.count

    
              
              
                #
              
              
                 靜態方法
              
              
                    @staticmethod
    
              
              
                def
              
              
                 static_set_count(count):
        Person.count 
              
              =
              
                 count

    @staticmethod
    
              
              
                def
              
              
                 static_get_count():
        
              
              
                return
              
              
                 Person.count


person 
              
              = Person(12, 135
              
                )

              
              
                #
              
              
                 實例直接修改并訪問類的保護屬性
              
              
person.count = 
              
                "
              
              
                24
              
              
                "
              
              
                print
              
              
                (person.count)

              
              
                #
              
              
                 類名直接修改并訪問類的保護屬性
              
              
Person.count = 
              
                "
              
              
                36
              
              
                "
              
              
                print
              
              
                (Person.count)


              
              
                #
              
              
                 實例調用實例方法修改并訪問類的私有屬性
              
              
person.self_set_count(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.self_get_count())  
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用類方法修改并訪問類的私有屬性
              
              
Person.class_set_count(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.class_get_count())  
              
                #
              
              
                 36
              
              
                #
              
              
                 實例調用靜態方法修改并訪問類的私有屬性
              
              
person.static_set_count(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.static_get_count())  
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用靜態方法修改并訪問類的私有屬性
              
              
Person.static_set_count(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.static_get_count())  
              
                #
              
              
                 36
              
            
View Code

      2、類的私有屬性:

        在實例方法通過實例訪問和修改類的私有屬性

        在類方法通過類名訪問和修改類的私有屬性

        在靜態方法通過類名訪問和修改類的私有屬性

        在類外類和實例都是不能訪問的;如果實例有與類的私有屬性同名的實例私有屬性,那么修改和訪問就和類的私有屬性沒有關系了

              
                class
              
              
                 Person:
    
              
              
                #
              
              
                 類屬性初始值12
              
              
    count = 12
    
              
                #
              
              
                 類的私有屬性初始值“12”
              
              
                __string
              
               = 
              
                "
              
              
                12
              
              
                "
              
              
                def
              
              
                __new__
              
              (cls, *args, **
              
                kwargs):
        
              
              
                return
              
               super().
              
                __new__
              
              
                (cls)

    
              
              
                def
              
              
                __init__
              
              
                (self, high, weight):
        self.high 
              
              =
              
                 high
        self.weight 
              
              =
              
                 weight
    
    
              
              
                def
              
              
                 self_set_string(self, string):
        self.
              
              
                __string
              
               =
              
                 string
    
    
              
              
                def
              
              
                 self_get_string(self):
        
              
              
                return
              
               self.
              
                __string
              
              
                #
              
              
                 類方法
              
              
                    @classmethod
    
              
              
                def
              
              
                 class_set_string(cls, string):
        cls.
              
              
                __string
              
               =
              
                 string
    
    @classmethod
    
              
              
                def
              
              
                 class_get_string(cls):
        
              
              
                return
              
               cls.
              
                __string
              
              
                #
              
              
                靜態方法
              
              
                    @staticmethod
    
              
              
                def
              
              
                 static_set_string(string):
        Person.
              
              
                __string
              
               =
              
                 string
    
    @staticmethod
    
              
              
                def
              
              
                 static_get_string():
        
              
              
                return
              
               Person.
              
                __string
              
              
                


person 
              
              = Person(12, 135
              
                )

              
              
                #
              
              
                 實例修改并訪問類屬性
              
              
person.count = 24

              
                print
              
              (person.count)    
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名修改并訪問類屬性
              
              
Person.count = 36

              
                print
              
              (Person.count)    
              
                #
              
              
                 36
              
              
                #
              
              
                 實例調用實例方法修改并訪問類的私有屬性
              
              
person.self_set_string(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.self_get_string())    
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用類方法修改并訪問類的私有屬性
              
              
Person.class_set_string(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.class_get_string())    
              
                #
              
              
                 36
              
              
                #
              
              
                 實例調用靜態方法修改并訪問類的私有屬性
              
              
person.static_set_string(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.static_get_string())    
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用靜態方法修改并訪問類的私有屬性
              
              
Person.static_set_string(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.static_get_string())    
              
                #
              
              
                 36
              
            
View Code

      3、類的保護屬性:

        在類外通過類和實例訪問和修改類的保護屬性

        在實例方法通過實例訪問和修改類的保護屬性

        在類方法通過類名訪問和修改類的保護屬性

        在靜態方法通過類名訪問和修改類的保護屬性

        在模塊外類和實例都是不能訪問的;如果實例有與類的保護屬性同名的實例保護屬性,那么修改和訪問就和類的保護屬性沒有關系了

              
                class
              
              
                 Person:
    
              
              
                #
              
              
                 類的保護屬性初始值“12”
              
              
    _protection = 
              
                "
              
              
                12
              
              
                "
              
              
                def
              
              
                __init__
              
              
                (self, high, weight):
        self.high 
              
              =
              
                 high
        self.weight 
              
              =
              
                 weight
    
    
              
              
                def
              
              
                 self_set_protection(self, protection):
        self._protection 
              
              =
              
                 protection
    
    
              
              
                def
              
              
                 self_get_protection(self):
        
              
              
                return
              
              
                 self._protection
    
    
              
              
                #
              
              
                 類方法
              
              
                    @classmethod
    
              
              
                def
              
              
                 class_set_protection(cls, protection):
        cls._protection 
              
              =
              
                 protection
    
    @classmethod
    
              
              
                def
              
              
                 class_get_protection(cls):
        
              
              
                return
              
              
                 cls._protection
    
    
              
              
                #
              
              
                靜態方法
              
              
                    @staticmethod
    
              
              
                def
              
              
                 static_set_protection(protection):
        Person._protection 
              
              =
              
                 protection
    
    @staticmethod
    
              
              
                def
              
              
                 static_get_protection():
        
              
              
                return
              
              
                 Person._protection


person 
              
              = Person(12, 135
              
                )

              
              
                #
              
              
                 實例直接修改并訪問類的保護屬性
              
              
person._protection = 
              
                "
              
              
                24
              
              
                "
              
              
                print
              
              
                (person._protection)

              
              
                #
              
              
                 類名直接修改并訪問類的保護屬性
              
              
Person._protection = 
              
                "
              
              
                36
              
              
                "
              
              
                print
              
              
                (Person._protection)


              
              
                #
              
              
                 實例調用實例方法修改并訪問類的私有屬性
              
              
person.self_set_protection(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.self_get_protection())    
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用類方法修改并訪問類的私有屬性
              
              
Person.class_set_protection(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.class_get_protection())    
              
                #
              
              
                 36
              
              
                #
              
              
                 實例調用靜態方法修改并訪問類的私有屬性
              
              
person.static_set_protection(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.static_get_protection())    
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用靜態方法修改并訪問類的私有屬性
              
              
Person.static_set_protection(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.static_get_protection())    
              
                #
              
              
                 36
              
            
View Code

      4、實例屬性:

        在類外通過類和實例訪問和修改實例屬性

        在實例方法通過實例訪問和修改實例屬性

        在類方法通過類名訪問和修改實例屬性

        在靜態方法通過類名訪問和修改實例屬性

        如果實例有與類屬性同名的實例屬性,那么修改和訪問就和類屬性沒有關系了

              
                class
              
              
                 Person:

    
              
              
                def
              
              
                __init__
              
              
                (self, high, weight):
        
              
              
                #
              
              
                 實例屬性
              
              
        self.high =
              
                 high
        self.weight 
              
              =
              
                 weight

    
              
              
                def
              
              
                 self_set_high(self, high):
        self.high 
              
              =
              
                 high

    
              
              
                def
              
              
                 self_get_high(self):
        
              
              
                return
              
              
                 self.high

    
              
              
                #
              
              
                 類方法
              
              
                    @classmethod
    
              
              
                def
              
              
                 class_set_high(cls, high):
        cls.high 
              
              =
              
                 high

    @classmethod
    
              
              
                def
              
              
                 class_get_high(cls):
        
              
              
                return
              
              
                 cls.high

    
              
              
                #
              
              
                 靜態方法
              
              
                    @staticmethod
    
              
              
                def
              
              
                 static_set_high(high):
        Person.high 
              
              =
              
                 high

    @staticmethod
    
              
              
                def
              
              
                 static_get_high():
        
              
              
                return
              
              
                 Person.high


person 
              
              = Person(12, 135
              
                )

              
              
                #
              
              
                 實例直接修改并訪問類的保護屬性
              
              
person.high = 
              
                "
              
              
                24
              
              
                "
              
              
                print
              
              
                (person.high)

              
              
                #
              
              
                 類名直接修改并訪問類的保護屬性
              
              
Person.high = 
              
                "
              
              
                36
              
              
                "
              
              
                print
              
              
                (Person.high)


              
              
                #
              
              
                 實例調用實例方法修改并訪問類的私有屬性
              
              
person.self_set_high(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.self_get_high())  
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用類方法修改并訪問類的私有屬性
              
              
Person.class_set_high(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.class_get_high())  
              
                #
              
              
                 36
              
              
                #
              
              
                 實例調用靜態方法修改并訪問類的私有屬性
              
              
person.static_set_high(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.static_get_high())  
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用靜態方法修改并訪問類的私有屬性
              
              
Person.static_set_high(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.static_get_high())  
              
                #
              
              
                 36
              
            
View Code

      5、實例的私有屬性:

        在實例方法通過實例訪問和修改實例私有屬性

        在類方法通過類名訪問和修改實例私有屬性

        在靜態方法通過類名訪問和修改實例私有屬性

        在類外通過類和實例訪問和修改實例私有屬性,相當于自身動態增加了一個屬性,所以在類外是不能訪問的;如果實例有與類的私有屬性同名的實例私有屬性,那么修改和訪問就和類的私有屬性沒有關系了

              
                class
              
              
                 Person:

    
              
              
                def
              
              
                __init__
              
              
                (self, high, weight):
        
              
              
                #
              
              
                 實例屬性
              
              
        self.high =
              
                 high
        self.
              
              
                __weight
              
               =
              
                 weight

    
              
              
                def
              
              
                 self_set_weight(self, weight):
        self.
              
              
                __weight
              
               =
              
                 weight

    
              
              
                def
              
              
                 self_get_weight(self):
        
              
              
                return
              
               self.
              
                __weight
              
              
                #
              
              
                 類方法
              
              
                    @classmethod
    
              
              
                def
              
              
                 class_set_weight(cls, weight):
        cls.
              
              
                __weight
              
               =
              
                 weight

    @classmethod
    
              
              
                def
              
              
                 class_get_weight(cls):
        
              
              
                return
              
               cls.
              
                __weight
              
              
                #
              
              
                 靜態方法
              
              
                    @staticmethod
    
              
              
                def
              
              
                 static_set_weight(weight):
        Person.
              
              
                __weight
              
               =
              
                 weight

    @staticmethod
    
              
              
                def
              
              
                 static_get_weight():
        
              
              
                return
              
               Person.
              
                __weight
              
              
                


person 
              
              = Person(12, 135
              
                )

              
              
                #
              
              
                 這里是實例動態增加的屬性
              
              
person.
              
                __weight
              
               = 
              
                "
              
              
                24
              
              
                "
              
              
                print
              
              (person.
              
                __weight
              
              
                )

              
              
                #
              
              
                 這里是類名動態增加的屬性
              
              
Person.
              
                __weight
              
               = 
              
                "
              
              
                36
              
              
                "
              
              
                print
              
              (Person.
              
                __weight
              
              
                )


              
              
                #
              
              
                 實例調用實例方法修改并訪問類的私有屬性
              
              
person.self_set_weight(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.self_get_weight())  
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用類方法修改并訪問類的私有屬性
              
              
Person.class_set_weight(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.class_get_weight())  
              
                #
              
              
                 36
              
              
                #
              
              
                 實例調用靜態方法修改并訪問類的私有屬性
              
              
person.static_set_weight(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.static_get_weight())  
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用靜態方法修改并訪問類的私有屬性
              
              
Person.static_set_weight(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.static_get_weight())  
              
                #
              
              
                 36
              
            
View Code

      6、實例的保護屬性:

        在實例方法通過實例訪問和修改實例保護屬性

        在類方法通過類名訪問和修改實例保護屬性

        在靜態方法通過類名訪問和修改實例保護屬性

        在類外通過類和實例訪問和修改實例保護屬性,相當于自身動態增加了一個屬性,所以在類外是不能訪問的;如果實例有與類的私有屬性同名的實例私有屬性,那么修改和訪問就和類的私有屬性沒有關系了   

              
                class
              
              
                 Person:

    
              
              
                def
              
              
                __init__
              
              
                (self, high, weight):
        
              
              
                #
              
              
                 實例屬性
              
              
        self.high =
              
                 high
        
              
              
                #
              
              
                 實例保護屬性
              
              
        self._weight =
              
                 weight

    
              
              
                def
              
              
                 self_set_weight(self, weight):
        self._weight 
              
              =
              
                 weight

    
              
              
                def
              
              
                 self_get_weight(self):
        
              
              
                return
              
              
                 self._weight

    
              
              
                #
              
              
                 類方法
              
              
                    @classmethod
    
              
              
                def
              
              
                 class_set_weight(cls, weight):
        cls._weight 
              
              =
              
                 weight

    @classmethod
    
              
              
                def
              
              
                 class_get_weight(cls):
        
              
              
                return
              
              
                 cls._weight

    
              
              
                #
              
              
                 靜態方法
              
              
                    @staticmethod
    
              
              
                def
              
              
                 static_set_weight(weight):
        Person._weight 
              
              =
              
                 weight

    @staticmethod
    
              
              
                def
              
              
                 static_get_weight():
        
              
              
                return
              
              
                 Person._weight


person 
              
              = Person(12, 135
              
                )

              
              
                #
              
              
                 這里是實例動態增加的屬性
              
              
person._weight = 
              
                "
              
              
                24
              
              
                "
              
              
                print
              
              
                (person._weight)

              
              
                #
              
              
                 這里是類名動態增加的屬性
              
              
Person._weight = 
              
                "
              
              
                36
              
              
                "
              
              
                print
              
              
                (Person._weight)


              
              
                #
              
              
                 實例調用實例方法修改并訪問類的私有屬性
              
              
person.self_set_weight(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.self_get_weight())  
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用類方法修改并訪問類的私有屬性
              
              
Person.class_set_weight(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.class_get_weight())  
              
                #
              
              
                 36
              
              
                #
              
              
                 實例調用靜態方法修改并訪問類的私有屬性
              
              
person.static_set_weight(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.static_get_weight())  
              
                #
              
              
                 24
              
              
                
#
              
              
                 類名調用靜態方法修改并訪問類的私有屬性
              
              
Person.static_set_weight(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (Person.static_get_weight())  
              
                #
              
              
                 36
              
            
View Code

?    關于類里面涉及屬性都舉例說明了(親測有效),但是類中出現了幾種方法,這個方法也是關鍵。類的方法類型:類方法、實例方法、靜態方法

       主要是驗證誰可以調用3大方法

       上述代碼已經驗證了實例可以調用實例方法、類名可以調用類方法、類名可以調用靜態方法

       實例可以調用類方法和靜態方法

       類名可以調用實例方法,傳參必須傳遞一個具體實例

              
                class
              
              
                 Person:

    
              
              
                def
              
              
                __init__
              
              
                (self, high, weight):
        
              
              
                #
              
              
                 實例屬性
              
              
        self.high =
              
                 high
        
              
              
                #
              
              
                 實例保護屬性
              
              
        self._weight =
              
                 weight

    
              
              
                def
              
              
                 self_set_weight(self, weight):
        self._weight 
              
              =
              
                 weight

    
              
              
                def
              
              
                 self_get_weight(self):
        
              
              
                return
              
              
                 self._weight

    
              
              
                #
              
              
                 類方法
              
              
                    @classmethod
    
              
              
                def
              
              
                 class_set_weight(cls, weight):
        cls._weight 
              
              =
              
                 weight

    @classmethod
    
              
              
                def
              
              
                 class_get_weight(cls):
        
              
              
                return
              
              
                 cls._weight

    
              
              
                #
              
              
                 靜態方法
              
              
                    @staticmethod
    
              
              
                def
              
              
                 static_set_weight(weight):
        Person._weight 
              
              =
              
                 weight

    @staticmethod
    
              
              
                def
              
              
                 static_get_weight():
        
              
              
                return
              
              
                 Person._weight


person 
              
              = Person(12, 135
              
                )


              
              
                #
              
              
                 實例調用類方法
              
              
person.class_set_weight(
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (person.class_get_weight())  
              
                #
              
              
                 24
              
              
                
#
              
              
                 實例調用靜態方法
              
              
person.static_set_weight(
              
                "
              
              
                36
              
              
                "
              
              
                )

              
              
                print
              
              (person.static_get_weight())  
              
                #
              
              
                 36
              
              
                #
              
              
                 類名調用實例方法,第一個參數必須是具體的實例
              
              
Person.self_set_weight(person, 
              
                "
              
              
                24
              
              
                "
              
              
                )

              
              
                print
              
              (Person.self_get_weight(person))  
              
                #
              
              
                 24
              
            
View Code

?  總結:

    1、對象名可以調用靜態方法、實例方法、類方法

    2、類名可以調用靜態方法、類方法、實例方法,但在調用實例方法時需要將第一個參數self傳入,傳入的其實是對象本身,不帶參數報錯

    3、實例屬性通過實例方法的 進行訪問,靜態方法和類方法無法訪問實例屬性

    4、類屬性通過類方法的 進行訪問,或者在其他函數內部通過<類名.>訪問

  繼承

    當子類/子對象和父類/父對象有很多共同之處,但是又有不同之處,這個時候我們就可以使用繼承機制。繼承父類的屬性和行為,其他屬性和行為需自己定義。

    python用的最多的繼承是單繼承,當然python也提供多繼承的,但是盡可能的不要使用多繼承,如果多繼承多了的話,編程的思維很容易亂。

    類繼承需在類名添加括號,在括號里添加父類名稱,這還沒有實現繼承。使用super關鍵字調用父類的方法,屬性可以直接拿來使用。父類可以看作是對子類的共同屬性和方法的抽象,將他們封裝成我們需要的父類

    類繼承的幾個關鍵點:

      1、子類繼承可以繼承父類的初始化函數__init__(),但是子類不寫初始化函數時,會自動/默認調用父類的初始化函數;子類定義初始化函數,也一定要調用父類初始化函數

      這里繼承是只能繼承父類的類屬性,不能繼承父類對象的屬性,若想也擁有同樣的屬性,所以才繼承父類的初始化函數。

      抱歉!改天更新...

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品免费久久久免费 | 亚洲色图综合图片 | 久久一区二区三区精品 | 久久久久久免费一区二区三区 | 国产精品冒白浆免费视频 | 中国大陆高清aⅴ毛片 | 婷婷国产在线观看 | 18性夜影院午夜寂寞影院免费 | 免费一级视频在线观看 | 成人黄色小视频网站 | 亚洲精品三级 | 免费观看国产大片资源视频 | 久久在线观看 | 天堂成人 | 毛片a片| 舒淇三级浴室洗澡在线观看 | 精品国产一区二区亚洲人成毛片 | 一级毛片aaa片免费观看 | 中文字幕三区 | 性爱视频在线免费 | 日本午夜免费无码片三汲大片 | 欧美第一页草草影院浮力 | 免费看搡女人无遮挡的视频 | 操操片 | 午夜精品久久久久久久99热浪潮 | 色播视频在线播放 | 国产成人啪精品视频免费网站软件 | 日本小网站 | 午夜影院在线播放 | 成人福利视频网 | 青青热在线观看视频精品 | 一级毛片视频在线观看 | 国内精品小视频福利网址 | 91在线播放网站 | 一区二区三区四区免费看 | 亚洲国产成人在线 | 一区二区国产精品 | 欧美黄 片免费观看 | 亚洲一区自拍 | 久久久久国产成人精品亚洲午夜 | 亚洲国产欧洲精品路线久久 |