类与库

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: