在面向对象的程序设计过程中有两个重要概念:类(class)和对象(object,也被称为实例,instance),其中类是某一批对象的抽象,可以把类理解成某种概念;对象才是一个具体存在的实体
1、类的定义
class 类名:
执行语句...
零个到多个类变量...
零个到多个方法...
(1)从可读性方面看,Python 的类名必须是由一个或多个有意义的单词连缀而成的,每个单词首字母大写,其他字母全部小写,单词与单词之间不要使用任何分隔符。
(2)类和函数定义不同,类的定义是class+首字母大写的函数名Name1Name2(): 而函数定义是def+function_name():
(3)从定义看,Python 的类定义有点像函数定义,都是以冒号(:)作为类体的开始,以统一缩进的部分作为类体的。
(4)在类体中最主要的两个成员就是类变量和方法。
其中类变量属于类本身,用于定义该类本身所包含的状态数据:
而实例变量则属于该类的对象,用于定义对象所包含的状态数据:
方法则用于定义该类的对象的行为或功能实现。
如果不为类定义任何类变量和方法,那么这个类就相当于一个空类,如果空类不需要其他可执行语句,则可使用 pass 语句作为占位符。例如,如下类定义是允许的:
class Empty:
pass
(5)在类中定义的方法默认是实例方法,定义实例方法的方法与定义函数的方法基本相同,只是实例方法的第一个参数会被绑定到方法的调用者(该类的实例),因此实例方法至少应该定义一个参数,该参数通常会被命名为 self。
注意:实例方法的第一个参数并不一定要叫 self,其实完全可以叫任意参数名,
只是约定俗成地把该参数命名为 self,这样具有最好的可读性
2、下面程序将定义一个 Person 类:
#定义的一个Person类
class Person :
# 下面定义了一个类变量
hair = 'black'
#下面定义一个方法
def __init__(self, name = 'Charlie', age=8):
# 下面为Person对象增加2个实例变量
self.name = name
self.age = age
# 下面定义了一个say方法
def say(self, content):
print(content)
由上面代码块中的def __init__()和def say()可知,一个类里面可以定义很函数/方法
3、类最基本的作用
(1)封装一系列的变量和函数
(2)定义变量;
(3)创建对象;
(4)派生子类;
4、下面程序将定义一个Student类:
class Student():
name = ''
age = 0
def print_file(self):
print('name: ' + self.name)
print('age: ' + str(self.age))
#类的调用
student = Student()
student.print_file()
类不负责执行代码,所类内部执行代码会报错,所以必须在类的外部调用类