目录

  • 1 前言
    • 1.1  Python解释器安装
    • 1.2  PyCharm开发环境
  • 2 Python程序设计实验
    • 2.1  实验1 基本输入输出
    • 2.2  实验2 基本运算
    • 2.3  实验3 字符串处理
    • 2.4  实验4 列表与元组应用
    • 2.5  实验5 列表与元组应用
    • 2.6  实验6 字典与集合应用
    • 2.7  实验7 函数应用1
    • 2.8  实验8 函数应用2
    • 2.9  实验9 类的创建与应用
    • 2.10  实验10 模块应用
    • 2.11  实验11 文件操作
    • 2.12  实验12 异常处理
    • 2.13  实验13 使用正则表达式
    • 2.14  实验14 tkinter基础应用
  • 3 学习参考
    • 3.1  1 Python及其IDLE环境
    • 3.2  2 Python代码规范
    • 3.3  3 使用变量
    • 3.4  4 输入输出
    • 3.5  5 运算符
    • 3.6  6 字符串
    • 3.7  7 条件语句
    • 3.8  8 循环语句
    • 3.9  9 列表
    • 3.10  10 元组
    • 3.11  11 字典
    • 3.12  12 集合
    • 3.13  13 自定义函数
    • 3.14  14 内置函数
    • 3.15  15 类的创建和使用
    • 3.16  16 类的继承与多态
    • 3.17  17 time模块
    • 3.18  18 os模块
    • 3.19  19 random模块
    • 3.20  20 文件
    • 3.21  21 错误与异常处理
 15 类的创建和使用

一、创建类

   格式:class 类名([父类])

             属性与方法定义

   父类缺省时为object。


二、类属性与对象属性

1、类属性:在类的内部、类的所有方法的外部定义的属性,为类属性。

2、对象属性:在类的方法内定义的属性,为对象属性。如:

class Student( ):

    studentNum=0

    def __init__(self,name,age):

        self.name=name

        self.age=age

其中:studentNum为类属性,name和age均为对象属性。

3、类可以读写类属性,对象只能读类属性。如:

Student.studentNum=1

print(Student.studentNum)

st1=Student("xiaoming",18)

print(st1.studentNum)

4、类属性可以通过类名创建。如:Student.ID="A01"

5、对象属性可以通过对象创建。如:st1.xh="B03"

6、对象属性与类属性同名时,对象将无法读取类属性。如:

st1.studentNum=3 #由对象创建了一个与类属性同名的对象属性

print(st1.studentNum,Student.studentNum) #输出二个不同的值

7、对象属性只能由对象读写,类不能读写对象属性。


三、公有属性与私有属性

1、私有属性:以双下划线开头的属性。只能在类内部访问。外部不能读写。如:

class Student( ):

    studentNum=0

    __locked=0

    def __init__(self,name,age):

        self.name=name

        self.age=age

其中__locked为私有属性。 

2、公有属性:除私有属性外,其他属性均为公有属性。

   上例中,studentNum、name、age均为公有属性。


四、类方法与对象方法

1、在类的定义中,使用关键字@classmethod声明,且第一个参数为cls的方法是类方法。

2、未使用关键字@classmethod声明,第一个参数为self的对象方法是对象方法。如:

class Student( ):

    studentNum=0

    def __init__(self,name,age):

        self.name=name

        self.age=age

        Student.studentNum+=1

    def show(self):

        print(self.name,self.age)

    @classmethod

    def see(cls):

        print(cls.studentNum)

其中:__init__、show均为对象方法,see为类方法。

3、类方法可由类和对象调用。对象方法只能由对象调用。


五、公有方法与私有方法

1、类的定义中,以双下划线开头命名的方法为私有方法,否则为公有方法。

2、公有方法可由外部调用,私有方法只能由类内部调用。如:

class Student( ):

    def __init__(self,name,age):

        self.name=name

        self.age=age

    def __show(self):

        print(self.name,self.age)

    def see(self):

        self.__show( )

其中:show为私有方法,see为公有方法。

3、应用说明:

st=Student("xiaoming",18)

st.see( ) #正确调用

st.show( ) #错误调用

st.__show( ) #错误调用


六、构造函数与析构函数

1、类的构造方法是指命名为“__init__”的方法。第一个参数必须是self。如:

class Student( ):

    def __init__(self):

        self.name=name

        self.age=age

2、构造方法在创建类的实例时自动运行。

3、可以为构造方法指定其他参数。如:

class Student():

    def __init__(self,name,age):

        self.name=name

        self.age=age

这时,在实例化时可传递参数。如:st=Student("张三",18)

4、析构方法是指命名为“__del__”的方法,第一个参数必须是self。

5、析构方法在类的实例被删除时自动运行。如:

class Student( ):

    studentNum=0

    def __init__(self,name,age):

        self.name=name

        self.age=age

        Student.studentNum+=1

    def __del__(self):

        Student.studentNum-=1

说明:

---创建类的实例时,类属性studentNum自动增加1

---删除类的实例时,类属性studentNum自动减少1

---可由下面的代码测试:

st1=Student("xiaoming",18)

st2=Student("zhaoji",19)

print(Student.studentNum)

del st2

print(Student.studentNum)