python程式設計-從入門到實踐-學習筆記-下篇
阿新 • • 發佈:2021-01-19
第八章 匯入模組
pizza.py
def make_pizza(size, *toppings):
"""概述要製作的比薩"""
print("\nMaking a " + str(size) + "-inch pizza with the following toppings:")
for topping in toppings:
print("- " + topping)
test.py
import pizza
pizza.make_pizza(16, 'pepperoni')
pizza.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
匯入特定的函式
語法:from module_name import function_name
from module_name import function_0, function_1, function_2
pizza.py
def make_pizza(size, *toppings):
"""概述要製作的比薩" ""
print("\nMaking a " + str(size) + "-inch pizza with the following toppings:")
for topping in toppings:
print("- " + topping)
test.py
from pizza import make_pizza
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese' )
使用使 as 給函式指定別名 typedef
如果要匯入的函式的名稱可能與程式中現有的名稱衝突,或者函式的名稱太長,可指定簡短而獨一無二的別名別 ——函式的另一個名稱
下面給函式make_pizza() 指定了別名mp() 。這是在import 語句中使用make_pizza as mp 實現的,關鍵字as 將函式重新命名為你提供的別名:
pizza.py
def make_pizza(size, *toppings):
"""概述要製作的比薩"""
print("\nMaking a " + str(size) + "-inch pizza with the following toppings:")
for topping in toppings:
print("- " + topping)
test.py
from pizza import make_pizza as mp
mp(16, 'pepperoni')
mp(12, 'mushrooms', 'green peppers', 'extra cheese')
使用使 as 給模組指定別名
import pizza as p
p.make_pizza(16, 'pepperoni')
p.make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
匯入模組中的所有函式 (*)
from pizza import *
make_pizza(16, 'pepperoni')
make_pizza(12, 'mushrooms', 'green peppers', 'extra cheese')
第九章 類
- 使用類幾乎可以模擬任何東西。
- 下面來編寫一個表示小狗的簡單類Dog ——它表示的不是特定的小狗,而是任何小狗
- 它們都有名字 和年齡
- 我們還知道,大多數小狗還會蹲下和打滾
- 這個類讓 Python知道如何建立表示小狗的物件。編寫這個類後,我們將使用它來建立表示特定小狗的例項。
方法方 init() 初始化類
開頭和末尾各有兩個下劃線 這是一種約定,旨在避免Python預設方法與普通方法發生名稱衝突。
我們將方法__init__() 定義成了包含三個形參:self 、name 和age 。
形參self 必不可少,還必須位於其他形參的前面。為何必須在方法定義中包 含形參self 呢?因為Python呼叫這個__init__() 方法來建立Dog 例項時,將自動傳入實參self 。 它是一個指向例項本身 的引用,讓例項能夠訪問類中的屬性和方法
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() + ".")
print("My dog is " + str(my_dog.age) + " years old.")
訪問類的變數和函式 .
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)
my_dog.sit()
my_dog.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!")
my_dog = Dog('willie', 6)
your_dog = Dog('lucy', 3)
print("My dog's name is " + my_dog.name.title() + ".")
print("My dog is " + str(my_dog.age) + " years old.")
my_dog.sit()
print("\nYour dog's name is " + your_dog.name.title() + ".")
print("Your dog is " + str(your_dog.age) + " years old.")
your_dog.sit()
Car 類
class Car():
"""一次模擬汽車的簡單嘗試"""
def __init__(self, make, model, year):
"""初始化描述汽車的屬性"""
self.make = make
self.model = model
self.year = year
def get_descriptive_name(self):
"""返回整潔的描述性資訊"""
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
給類屬性(變數)----指定預設值
下面來新增一個名為odometer_reading 的屬性,其初始值總是為0。我們還添加了一個名為read_odometer() 的方法,用於讀取汽車的里程錶:
class Car():
"""一次模擬汽車的簡單嘗試"""
def __init__(self, make, model, year):
"""初始化描述汽車的屬性"""
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
"""返回整潔的描述性資訊"""
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
"""列印一條指出汽車裡程的訊息"""
print("This car has " + str(self.odometer_reading) + " miles on it.")
my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
my_new_car.read_odometer()
修改類屬性的3個方法
- 可以直接修改
- 間接修改,使用方法
- 通過遞增進行修改
class Car():
"""一次模擬汽車的簡單嘗試"""
def __init__(self, make, model, year):
"""初始化描述汽車的屬性"""
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_descriptive_name(self):
"""返回整潔的描述性資訊"""
long_name = str(self.year) + ' ' + self.make + ' ' + self.model
return long_name.title()
def read_odometer(self):
"""列印一條指出汽車裡程的訊息"""
print("This car has " + str(self.odometer_reading) + " miles on it.")
def update_odometer(self, mileage):
"""將里程錶讀數設定為指定的值"""
self.odometer_reading = mileage
def increment_odometer(self, miles):
"""將里程錶讀數增加指定的量"""
self.odometer_reading += miles
my_new_car = Car('audi', 'a4', 2016)
print(my_new_car.get_descriptive_name())
"""直接修改"""
my_new_car.odometer_reading = 23
"""方法修改"""
my_new_car.update_odometer(23)
"""新增修改"""
my_new_car.increment_odometer(23)
my_new_car.read_odometer()
繼承!!!
在這裡插入程式碼片
背景
在這裡插入程式碼片
背景
在這裡插入程式碼片
背景
在這裡插入程式碼片
背景
在這裡插入程式碼片
背景
在這裡插入程式碼片
背景
在這裡插入程式碼片