Python 学习从入门到放弃(四)–类和模块的基础知识
类
一个最简单的类的定义可能是类似这样的
class 类名:
def 方法名1(self, 参数...)
方法体
...
属性名 = 初始值
...
而创建一个该类的对象则可以使用
对象名 = 类名()
其中的 self 指代对象自己,需要调用对象方法时,可以使用
对象名.方法名(参数...)
构造函数与解构函数
和 C 语言中的构造和解构函数类似,当我们创建某个类的对象的时候,可以增加更多参数。
# 构造函数
def __init__(self, 参数...)
构造函数体
# 解构函数
def __del__(self, 参数...)
解构函数体
例如
# 类的定义
class goods:
name = ''
price = 0
def __init__(self, name, price):
self.name = name
self.price = price
def __del__(self):
print('delete the goods')
# 使用构造函数创建一个对象
pen = goods('pen', 5.9)
# 使用解构函数删除这个对象
del(pen)
方法和属性
例如
class goods:
name = ''
price = 0
inventory = 0
def __init__(self, name, price, inventory):
self.name = name
self.price = price
self.inventory = inventory
def __del__(self):
print('delete the goods')
def sell(self, numbers):
remained = self.inventory - numbers
if remained > 0:
self.inventory = remained
return self.price * intnumbers
else: # 库存不够
print('库存不足')
# 创建库存
pen = goods('pen', 5.9, 100)
# 卖了50支pen
pen.sell(50) # 返回295.0,库存inventory变成了50
print(pen.inventory) # 得到结果50
其中 name、price、inventory 都是这个类的属性,通过 对象名.属性名 的方式调用
而sell()就是这个类的一个方法,通过 对象名.方法名(参数) 的方式来调用
继承
基本语法
class 类名(父类, ...):
类定义体
例如
class freshCommodities(goods):
productionDate = '' # 生产日期
def __init__(self, name, price, inventory, productionDate):
super(freshCommodities, self).__init__(name, price, inventory) # 调用父类的构造函数
self.productionDate = productionDate
def sell(self, numbers):
if self.productionDate > '20171102': # 举个例子,当然也可以使用 Python 的 date 相关库来判断时间
return goods.sell(self, numbers) # 这里直接使用了父类的名称来调用父类的方法,而原函数中的参数 self 在这里被替换成实参 self 指代自己
else:
print('商品已过期,不能销售')
fish = freshCommodities('fish', 10, 100, '20171103')
fish.sell(50)
模块基础
跟 C 语言的库、Java 的模块概念类似。
基本语法:
import 模块名
import 模块名 as 别名 # 在使用时通过别名来调用
from 模块名 import 子模块名
from 模块名 import * # 导入所有子包
调用时,使用方法会根据import语法的不同有所不同。
例如 Python 提供了一个 re 的模块,用于处理正则表达式,其中有一个函数sub(需要查找的内容, 替换成的内容, 源字符串),我们以此为例进行说明
import re
re.sub('p', 'P', 'Hello Python') # 加上模块名来调用
import re as reg
reg.sub('p', 'P', 'Hello Python') # 使用别名调用
from re import *
sub('p', 'P', 'Hello Python') # 直接调用