类的创建和使用
- 创建类:
class Dog():
"""docstring for Dog"""
def __init__(self, name, age):
# 类似构造函数,self类似this
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!')
- 使用类——实例化:
# 使用
my_dog = Dog('willite', '3')
print("My dog's name is " + my_dog.name + ".It's " + str(my_dog.age) + " years old.")
# 调用方法
my_dog.sit()
my_dog.roll_over()
继承
- 在定义子类时,在类名后的括号中写上父类的名字
- 子类的__init__函数中需要先初始化父类的属性
- 子类中可以增加新的属性和方法
- 子类中也可以重写父类的方法
- 一个类的实例也可以成为另一个类的属性
(Python中有关类的用法总体上和 Java类似)
# 有关继承
# 父类
class Car():
"""docstring for Car"""
def __init__(self, make, model, year):
self.make = make
self.model = model
self.year = year
self.odometer_reading = 0
def get_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
def fill_gas_tank(self):
print("The gas tank is filled!")
# 子类
class ElectricCar(Car):
"""docstring for ElectricCar"""
def __init__(self, make, model, year):
# 父类的属性
super().__init__(make, model, year)
# 子类的新属性
self.battery_size = 70
# 子类中新的方法
def describe_battery(self):
print("This car has a " + str(self.battery_size) + "-kwh battery.")
# 重写父类的方法
def fill_gas_tank(self):
print("This car doesn't need a gas tank!")
# 使用
my_tesla = ElectricCar('tesla', 'model s', 2016)
print(my_tesla.get_descriptive_name())
my_tesla.describe_battery()
my_tesla.fill_gas_tank()
Python的模块化
- 可以将某个或某几个相关联的类放置于同一个.py中以形成模块
- 如果想使用其他模块中的类可以用import语句导入
- 可以import某一个类或某几个类,也可以import整个模块或是import模块中的所有类
# 导入某些类
from 模块名 import 类名
#导入模块
import 模块名
# 导入模块中的所有类
from 模块名 import *