Python類demo詳解


Dog類,賦予每條小狗蹲下(sit())和打滾(roll_over())的能力

 

dog.py源碼:

class Dog():
  """一次模擬小狗的簡單嘗試"""

  def __init__(self, name, age):   """注意這里一共是4個_"""
    """初始化屬性name和age"""
    self.name = name
    self.age = age

  def sit(self):
    """模擬小狗被命令時蹲下"""
    print(self.name.title() + " is now sitting.")

  def roll_over(self):
    """模擬小狗被命令時打滾"""
    print(self.name.title() + "rolled over!")

 

Dog類名:在python中,首字母大寫的名稱指的是類;這個類定義中的括號是空的,因為我們要從空白創建這個類。

"""一次模擬小狗的簡單嘗試""":文檔字符串,對這個類的功能作了描述。

1、方法_init_()

  類中的函數都成為方法;前面學習的函數的一切都使用於方法。

  _init_()是一個特殊的方法,沒當你根據Dog類創建新實例時,Python都會自動運行它。在這個方法的名稱中。開頭和末尾有兩個下划線,這是一種約定,旨在避免python默認方法與普通方法沖突。

  我們將方法_init_定義成了包含三個參數:self、name和age。在這個方法的定義中,形參self必不可少,還必須位於其他形參的前面。因為Python調用這個_init_方法來創建Dog實例時,將自動傳入實參self。每個與類相關聯的方法調用都自動傳遞實參self,每個與類相關聯的方法調用都自動傳遞實參self。它是一個指向實例本身的引用,讓實例能夠訪問類中的屬性和方法。

  我們創建Dog實例時,Python將調用Dog類的方法_init_()。我們將通過實參向Dog()傳遞名字和年齡;self會自動傳遞,因此我們不需要傳遞它。每當我們根據Dog類創建實例時,都只需給最后兩個形參(name和age)提供值。

  self.name = name和selg.age = age 定義的變量都有前綴self。以self為前綴的變量都可供類中的所有方法使用,我們還可以通過類的任何實例來訪問這些變量。self.name = name獲取存儲在形參name中的值,並將其存儲到變量name中,然后該變量被關聯到當前創建的示例。self.age = age的作用與此類似。像這樣可以通過實例訪問的變量稱為屬性。

 

  Dog還定義了另外兩個方法sit()和roll_over()。由於這些方法不需要額外的信息,如名字或年齡,因此他們只有一個形參self。我們后邊將創建的實例能夠訪問這些方法,換句話說,它們都會蹲下和打滾。

 

 

在同一個文件中執行如下代碼即創建了一個實例。

print("My dog's name is "+my_dog.name.title()+".")
print("My dog is " + str(my_dog.age)+" years old.\n\n")

my_dog.sit()
my_dog.roll_over()

 

輸出結果:

 

上述例子中用到了雙引號,單引號和3個雙引號。雙引號(" 字符串 ")和單引號( '字符串' )都用來表示一個字符串,無區別。三個雙引號( """注釋""" )用來表示注釋。

他們區別參考鏈接:https://blog.csdn.net/woainishifu/article/details/76105667

 

 

===================注意事項==========================

1、類中的每個屬性都必須又初始值,哪怕這個值是0或空字符串。

在某些情況下,如設置默認值時,在方法__init__內指定這種初始值是可行的;

如果你對某個屬性這樣做了,就無需包含為它提供初始值的形參。

eg: def __init__ (self, make)

    self.make = make

    self.model = model

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM