1. 程式人生 > >《Python程式設計從入門到實踐》記錄之類的建立

《Python程式設計從入門到實踐》記錄之類的建立

1、建立類

下邊類是一個表示小狗的類,儲存了名字和年齡,以及小狗蹲下(sit())和打滾(roll_over())的能力:

# 定義類名
class Dog():
    """一次模擬小狗的簡單嘗試"""  # 文件字串描述類功能


def __init__(self, name, age):
    """初始化屬性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中,類名稱的首字母要大寫
  • 類也需要有文件字串,對類的功能進行描述
  • 類中的函式稱為方法
  • 方法_init_():一個特殊的方法,建立類示例時,Python會自動執行。開頭和末尾各有兩個下劃線,是一種約定,為了避免Python預設方法與普通方法發生名稱衝突。_init_()方法中,必須包含self形參,且必須放在最前面,它是指向示例本身的引用,每個與類相關聯的方法都自動傳遞實參self(所以在建立類示例時,不用提供傳遞值)。
  • self.name和self.age:兩個變數都有字首self,以self為字首的變數都可供類中的所有方法使用
    ,也可以通過類的任何示例來訪問這些變數。

2、根據類建立例項

#!/usr/bin/env python
# -*- coding:utf-8 -*-


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

    def __init__(self, name, age):
        """初始化屬性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!")


my_dog = Dog('willie', 6)  # 建立一個類例項

print("My dog's name is " + my_dog.name.title() + ".")  # 訪問name屬性的值
print("My dog is " + str(my_dog.age) + " years old.")  # 訪問屬相age的值

my_dog.sit()  #  訪問類方法
my_dog.roll_over()

類例項中,可以使用句點表示法訪問類的屬性值,如my_dog.name何my_dog.age。

同時,也可以使用句點表示發訪問類的方法


上訴程式碼執行結果為: