创建和使用类
创建类
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")
-
使用class关键字定义类
-
类名后使用冒号结束
-
方法init()
init方法是类的构造函数,self为必不可少的,必须位于第一个形参. -
类中定义的其他方法
传入self使方法可以使用类中的属性
self必须存在因为调用时会默认传入self作为实参
使用类
my_dog = Dog("kim",2)
- 访问属性
my_dog .name
- 调用方法
my_dog.sit()
类的使用
给属性指定默认值
class Car():
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
修改属性的值
- 直接修改
my_new_car.odometer_reading = 23
- 通过方法修改属性的值
def update_odometer(self, mileage):
if mileage < self.odometer_reading:
print("you can't roll back an odometer")
return
self.odometer_reading = mileage
- 通过方法对属性的值进行递增
def increament_odometer(self, mileage):
if mileage < 0:
print("you can't roll back an odometer")
return
self.odometer_reading += mileage
继承
格式
class Car():
....
class ElectricCar(Car):
def __init__(self, make, model, year):
super().__init__(make, model, year)
- 定义子类时,指定父类名称
- 子类要继承父类方法,属性 需要调用父类构造方法
重写父类方法
名称与父类方法相同即可
将实例用做属性
当类中细节越来越多的时候可以将类拆分.将同类的属性归并到一个新的类中.在源类中使用新创建类的实例
class Car():
--snip--
class Battery():
def __init__(self, battery_size=70):
self.battery_size = battery_size
class ElectricCar(Car):
def __init__(self, make, model, year):
super().__init__(make, model, year)
self.battery = Battery()
导入类
导入单个类
from car import Car
从一个模块中导入多个类
from car import Car, ElectricCar
导入整个模块
import car
导入模块中的所有类(不推荐)
from module_name import *
Python标准库
Python 标准库是一组模块
- collections中的一个类-OrderedDict
from collections import OrderedDict
类编码风格
- 类名使用驼峰命名法
- 实例名和模块名使用小写,下划线连接
- 都应紧跟在类定义后面包含一个文档字符串
- 在类中,可使用一个空行来分隔方法;而在模块中,可使用两个空行来分隔类
- 先编写导入标准库模块的import语句,再添加一个空行,导入自己编写的模块
网友评论