類與庫

1、創建和使用類

  1.1創建Dog類

class Dog():
def _init_(self,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!")

  方法_init_():
類中的函數稱為方法,方法_init_()是一個特殊的方法,每當你根據Dog類創建新實例時,python都會自動運行它。在這個方法的名稱中,開頭和結尾各有一個下劃線,這是一種約定,
旨在避免python默認方法和普通方法發生名稱衝突

  1.2使用Dog類

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."

  訪問屬性

  my_dog.name

  調用方法

  my_dog.sit()

  創建多個實例

  my_dog=Dog('willie',6)
  your_dog=Dog('lucy',3)

  

2、繼承

class Car():
def _init_(self,make,model,year):
self.make=make
self.model=model
self.year=year
self.odometer_reading=0

def ger_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):
if mileage>= self.odometer_reading:
self.odometer_reading=mileage
else:
print("You can't roll back an odometer!")

def increment_odometer(self,miles):
self.odometer_reading+=miles

class ElectricCar(Car):
def _init_(self,make,model,year):
super()._init_(make,model,year)

my_tesla=ElectricCar('tesla','model s',2016)
print(my_tesla.ger_descriptive_name())

  首先是Car的程式碼,創建子類時,父類必須包含在當前文件中,且位於之類前面。

  定義子類時,必須在括弧內指定父類的名稱

  方法_init_()接受創建Car實例所需的資訊

  super()是一個特殊函數,幫助python將父類和子類關聯起來

3、導入類

from car import Car
from car import Car,ElectricCar
my_tesla=ElectricCar('tesla','model s',2016)

import car
my_tesla=car.ElectricCar('tesla','model s',2016)

在一個模組中導入另一個模組
將Car類存儲在car模組,並將ElectricCar和Battery類存儲在electric_car.py中
from car import Car
class Battery():
  --snip--
class ElectricCar(Car):
  --snip--

4、Python標準庫

  要創建字典並記錄其中的鍵-值對的添加順序,可使用模組collections中的OrderedDict類

 

Tags: