4.1 基本概念
面向对象程序设计(Object Oriented Programming,OOP)
- 针对大型软件设计而提出
- 使得软件设计更加灵活
- 能够更好地支持代码复用和设计复用
- 使得代码具有更好的可读性和拓展性
基本原则:计算机程序由多个能够起到子程序作用的单元或对象组合而成。
创建类时用变量形式表示的对象属性称为数据成员或成员属性,用函数形式表示的对象行为称为成员函数或成员方法
成员属性和成员方法统称为类的成员。
4.2 类的定义与使用
python 使用 class 关键字来定义类,约定类名首字母大写(若类名由多个单词拼接而成,各单词首字母也大写)
e.g.
class Car:
def infor(self):
print("This is a car")
实例化对象:
>>> car = Car()
>>> car.infor()
This is a car
python内置了方法 isinstance() 来测试一个对象是否为某个类的实例:
>>> isinstance(car, Car)
True
>>> isinstance(car, str)
False
占位符 pass 可以在没有确定如何实现功能、或为以后的软件升级预留空间时使用。
4.3 self 参数
类的所有实例方法都必须至少有一个名为 self 的参数,并且必须是方法的第一个形参(如果有多个形参),self 参数代表对象本身。
方法__init__()是一个特殊的方法,每当根据某个类创建新实例时,python 都会自动运行它。
注:在类中定义实例方法时将第一个参数定义为 self 只是一个习惯。
class A:
def __init__(self, v):
self.value = v
def show(self):
print('value=', self.value)
等价于
class A:
def __init__(hahaha, v):
hahaha.value = v
def show(hahaha):
print('value=', hahaha.value)
二者运行结果:
>>> a = A(3)
>>> a.value #访问属性
3
>>> a.show() #调用方法
value= 3
4.4 类成员与实例成员
实例属性:一般是指在构造函数__init__()中定义的,定义和使用必须以self为前缀。
在主程序(或类的外部),实例属性属于实例(对象),只能通过对象名访问。
类属性:是在类中所有方法之外定义的数据成员。
类属性属于类,可以通过类名或对象名访问。
类中的每个属性都必须由初始值,哪怕这个只是0或空字符串。
class Car:
price = 100000
def __init__(self, c):
self.color = c
创建多个实例:
>>> car1 = Car("Red")# 实例化对象car1
>>> car2 = Car("Blue")# 实例化对象car2
>>> print(car1.color, Car.price)# 通过“ 对象名.成员 ”访问类中的数据成员或成员方法
# 通过“ 类名.类属性 ”访问类属性
Red 100000
>>> Car.price = 110000 # 修改类属性
>>> Car.name = 'QQ' # 增加类属性
>>> car1.color = "Yellow" # 修改实例属性
>>> print(car2.color, Car.price, Car.name)
Blue 110000 QQ
>>> print(car1.color, Car.price, Car.name)
Yellow 110000 QQ
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)