1. 程式人生 > 其它 >【python學習】函式與類

【python學習】函式與類

現在做的一個小專案需要用到python的相關知識,但是因為太久沒用一些東西都忘掉了,因此在本篇部落格中記錄一下python的函式和類的基礎知識,下次可以直接查閱,用的參考書是《Python程式設計從入門到實踐》

函式

運用關鍵字def告訴Python要定義函式:

def greet_name():
    print("Hello!")

包含引數:

def greet_name(username):
    print("Hello, "+username.title()+"!")
  • 形參:函式完成其工作需要的一項資訊
    • 預設值:每個形參可指定預設值,給形參指定預設值後可在函式呼叫中省略相應的實參
  • 實參:呼叫函式時傳遞給函式的資訊
    • 位置實參:基於實參的順序
    • 關鍵字實參:傳遞給函式名稱-值對
def greet_name(username='zyh'):
    print("Hello, "+username.title()+"!")

greet_name()
greet_name('zyh')
greet_name(username='zyh')
  • 返回值

模組

可將函式儲存在被稱為模組的獨立檔案中(副檔名為.py的檔案),再將模組匯入到主程式中
import語句允許在當前執行的程式檔案中使用模組中的程式碼

  • 匯入整個模組
  • 匯入特定的函式
  • 使用as給函式指定別名
  • 使用as給模組指定別名
  • 匯入模組中的所有函式
from pizza import make_pizza
from pizza import make_pizza as mp
import pizza as p
from pizza import *

匯入模組後可以使用句點表示法使用模組中的函式:

module_name.function_name()

根據類來建立物件:例項化

class Dog():

    def __init__(self,name,age):
        self.name=name
        self.age=age

    def sit(self):
        print(self.name.title()+ "is now sittinf")

    def roll_over(self):
        print(self.name.title()+ "rolled over!")

類中的函式稱為方法

  • __init __()方法
    • 根據類建立新例項時,Python都會自動執行它,這個方法的定義中形參self必不可少,還比如位於其他形參的前面,self是一個指向例項本身的引用,讓例項可以訪問類中的屬性和方法

根據類建立例項

my_dog=Dog('zxz',9)
  • 訪問屬性
  • 呼叫方法
  • 修改屬性的值
    • 直接修改屬性的值
    • 通過方法修改屬性的值

繼承

一個類繼承另一個類,它將自動獲得另一個類的所有屬性和方法,原有的類稱為父類,新類稱為子類

class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year

class ElectricCar(Car):
    def __init__(self,make,model,year):
        super().__init__(make,model,year)
  • 建立子類時,父類必須包含在當前檔案中,且位於子類前面
  • super()是一個特殊函式,幫助Python將父類和子類相關聯起來,在例子中呼叫了父類的方法__init() __從而讓ElectricCar包含父類中的所有屬性
  • 父類也稱為超類(superclass)
  • 一個類繼承另一個類後,可新增區分子類和父類所需的新屬性和方法,同時還可以重寫父類的方法,Python不會考慮父類方法,只會關注在子類定義的相應方法
  • Python允許將類儲存在模組中,然後在主程式中匯入所需的模組,從一個模組匯入類時,可用逗號分隔各個類