Python是一门面向对象的编程语言,类和对象是Python中尤为重要的一环。
1.类与对象
类是一类具有共同特征的抽象。如人类是对千万个人的统称,人类中的每个个体就是对象,如张山、李四、王二都是人类中的一个对象。类似于集合和元素的关系
Python中的列表是Python定义好的一个类。如列表的长度是列表的一个属性,增删改查就是属于列表的方法了
如何定义一个类
定一个手机类
class Phone:
length = 15
wide = 6
xiaomi = Phone()
print(xiaomi.length)
print(xiaomi.wide)
# 运行结果为 15 6
而 xiaomo = Phone()就是确定一个对象
2.属性与方法
属性是指的这类东西特征,如手机的长,宽,价格都是手机属性
方法是指这类东西能干什么,如玩游戏、打电话都是手机的方法
class Phone:
length = 15
wide = 6
price = 3000
__cost = 1300
def call(self):
print("打电话")
def game(self):
print("玩游戏")
def listen(self):
print("放音乐")
xiaomi = Phone()
print(xiaomi.listen())
print(xiaomi.game())
# 运行结果 放音乐 玩游戏
方法的self形参传入的数据是该类的一个对象
如上面代码中self传入的就是xiaomi这个对象
方法就是在类中定义的函数
属性和方法都分为私有和公有
在定义属性之前加 "__"即两个下划线时为私有属性,私有属性只能在类里面访问。如上面代码
length,wide,price为公用属性,__cost为私有属性。方法是在定义函数名字时在函数名前加"__"。
3.继承与重载
继承
class Phone:
length = 15
wide = 6
price = 3000
__cost = 1300
def __init__(self):
pass
def call(self):
print("打电话")
def game(self):
print("玩游戏")
def listen(self):
print("放音乐")
class xiaomi(Phone):
pass
vivo = Phone()
xiaomi9 = xiaomi()
print(vivo.wide)
print(xiaomi9.wide)
# 运行结果 6 6
在上面程序中xiaomi为子类,Phone为父类。子类可以访问父类的公有属性和公有方法
父类的私有属性和方法子类不能访问
方法重载
class Phone:
length = 15
wide = 6
price = 3000
__cost = 1300
def __init__(self):
pass
def call(self):
print("打电话")
def game(self):
print("玩游戏")
def listen(self):
print("放音乐")
class xiaomi(Phone):
def listen(self):
print("用小米听音乐")
vivo = Phone()
xiaomi9 = xiaomi()
print(vivo.listen())
print(xiaomi9.listen())
# 运行结果 放音乐 用小米听音乐
方法重载就是重写父类的方法
重载运算符
class Mylist:
__list = [0, 1, 2, 3, 4, 5]
def __add__(self, other):
for i in range(0, len(self.__list)):
self.__list[i] = self.__list[i] + other
print(self.__list)
list = Mylist()
list + 3
# 运行结果 [3, 4, 5, 6, 7, 8]
一般情况下列表与数字直接相加是报错的,通过重载运算符,让运算符与对象运算时起到我们想要的结果