chapter9 类
9.1 创建和使用类
9.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!")
1:方法_init_()
每当根据Dog类创建新实例时,Python都会自动运行它。
2:在Python2.7中创建类时,需要做细微的修改-在括号内包含单词object:
class ClassName(object)
9.1.2 根据类创建实例
my_dog = Dog('willie', 6)
print("My dog's name is" + my_dog.name.titile() + “。)
print("My dog is" + str(my_dog.age) + "year old.")
1:访问属性
2:调用方法
3:创建多个实例
9.2 使用类和实例
9.2.1 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('audio', 'a4', 2016)
print(my_new_car.get_descriptive_name())
9.2.2 给属性指定默认值
9.2.3 修改属性的值
1:直接修改属性的值
2:通过方法修改属性的值
3:通过方法对属性的值进行递增
9.3 继承
9.3.1 子类的方法_init_()
创建子类的实例时,Python首先需要完成的任务是给父类的所有属性赋值。
为此,子类的方法_init_()需要父类是以援手。
class ElectricCar(Car):
def _init_(self,make,model,year):
super()._init_(make,model,year)
my_tesla = ElectricCar("tesal","models",2016)
9.3.2 Python 2.7中继承
class Car(object):
def _init_(self,make,model,year):
--snip--
class ElectricCar(Car):
def _init_(self,make,model,year):
super(EletricCar,self)._init_(make, model, yeat)
--snip--
9.3.3 给子类定义属性和方法
9.3.4 重写父类的方法
9.3.5 将实例用作属性
class Battery():
def _init_(self,battrty_size= 70):
self.battery_size = battery_size
class ElectricCar(Car):
def _init_(self,make,model,year):
super()._init_(make,model,year)
self.battery = Battery()
9.4 导入类
9.4.1 导入单个类
from car import Car
9.4.2 在一个模块中存储多个类
9.4.3 从一个模块总导入多个类
from car import Car, ElectricCar
9.4.4 导入整个模块
import car
9.4.5 导入模块中的所有类
from module_name import *
9.4.6 在一个模块中导入另一个模块
9.4.7 自定义工作流程
9.5 Python标准库
9.6 类编码风格