概念
类:具有相同属性和方法的对象的抽象
实例:类的个例
对象:Python中的对象是类和实例的集合,类可以看作是对象,实例也可以看作是对象
基本语法
class
#定义类,注意类名需要大写
class MyClass: #定义类MyClass
i =12345 #定义类的属性(变量)
def f(self): #定义类的方法
return('hello world') #执行这个方法会返回'hello word'这个字符串
x = MyClass() #创建类的实例x
print(x.i) #打印实例x的属性
print(x.f()) #打印实例x的f方法
#输出的结果为
12345
hello world
class A(B)
#定义B类的子类A类,A类具有B类的属性和方法,也将B类称为A类的父类
class SecondClass(MyClass):
pass
#定义SecondClass是MyClass的子类,SecondClass可以调用MyClass的属性和方法
x = SecondClass()
print(x.i)
print(x.f())
#输出的结果为
12345
hello world
class A(B, C)
#多重继承,A类同时是B类和C类的子类,A类在调用属性和方法的时候,会优先调用位于左侧的类
class B:
i = 123 #B类的属性是i=123
class C:
i = 12345 #C类的属性是i=12345
class A(B,C): #A类是B类和C类的子类
pass
x = A() #创建A类的实例x
print(x.i) #调用属性,会优先调用B类的属性
#结果输出为
123
def __init__(self):
#创建类的初始化方法,只要调用类,便自动调用初始化方法的语句,常用于创建实例属性
>>>class A:
... def __init__(self): #只要创建实例,便会自动执行初始化方法下的语句
... print('hello world')
>>>x = A()
hello world #只要创建实例就会调用方法,打印hello world
#对比以下没有初始化的方法:
>>>class A:
... def f(self):
... print('hello world')
>>>x = A()
#不使用初始化方法,创建实例无任何输出
super()
#在子类的方法里调用父类的方法,使子类的方法可以在继承父类方法的基础上进行扩展