类与库
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类