小白学习之python—图形化界面设计与类(带例理解)

注:仅上课笔记和一些自己的理解,不保证完全无错,


一、类的定义

        类(class)是面向对象程序设计实现信息封装的基础,是一种用户定义类型,也称类类型。每个类包含数据说明和一组操作数据或传递消息的函数。类的实例称为对象。

        1、说明

                ① 在Python语言中,类使用关键字class定义。在类中可以创建变量使用赋值语句定义函数等。

                ② 类将对象的行为、数据和属性进行了封装。在Python语言里,类中的变量就是对象的数据、属性,函数作为对象的行为又被称为方法。

        2、语法

                    如何创建自定义类:

class 类名() :

        赋值语句

        ……

                def语句定义函数

                ……


二、类的变量

         类的属性指的是类或对象的一些特征。如果定义一个学生类,那么学生的学号、姓名、班级、性别和年龄等就可以作为学生类的属性。简言之,类的属性描述了该类的内部信息,类属性就相当于一个类的变量,在类中可以定义的变量类型分为实例变量和类变量两种。

        1、类变量的定义

        在Python环境中,可以直接使用类名来调用类变量,这个类名其实对应着一个由Python自动创建的对象,这个对象称为类对象,它是一个全局唯一对象。我们推荐使用类对象来调用类变量这种方式。虽然在Python中也允许使用实例对象来调用类变量,但这样有时会带来一些困扰。

class 类名():

        变量名=变量初始值

        2、实例变量的定义

         我们经常将实例变量定义在构造方法中,这样当实例化的对象被创建时,实例变量就会被定义和赋值。因此,实例变量在类的任意一个方法中都可以被调用。

self.变量名=值


三、类的方法

        类的方法用于描述对象的行为。如果把学生作为对象,则写作业、上课、考试和跑步等都可以作为学生对象的方法。

        在类内部定义方法与在类外部定义函数较为相似,并且在实际应用中,方法和函数拥有的功能也是相同的。不同之处在于,一个定义在类内部,一个定义在类外部。定义在类内部的称为方法,定义在类外部的称为函数实例方法是最常用的一种类方法的定义。顾名思义,实例方法就是只有在使用类创建了实例对象后才可以调用的方法,不能直接使用类名调用。

        从基本格式来看,类的方法定义比函数定义多了一个参数self,在定义实例方法时self是必需的,也就是说在实例方法中self必须是第一个参数,self代表的是实例,就是通过类创建对象后对自身的引用。在对象内也只有通过self才能调用其他实例变量或方法。

def 方法名(self,参数列表):

        方法体


四、类对象和实例对象

         在Python语言中的对象可分为两类:类对象和实例对象。类对象是在执行class语句时创建的,实例对象是在调用类时创建的。类在每次调用时就会创建一个实例对象,它的对象只有一个,而实例对象则可有多个。类对象和每个实例对象都拥有各自的命名空间,在各自的命名空间存储属于自己的数据。

        1、类对象

                程序执行class语句时创建一个类对象和变量名(类名称),通过变量名引用类对象。

                 类也是可执行语句,在导入类模块时,class语句被执行后则会创建一个类对象

                 类中通过赋值语句创建的变量是类的数据属性,类中顶层赋值语句创建的变量是类对象。类中的数据用“对象名.属性名”的格式进行访问。

                ④ 类中使用def语句定义的函数是类的方法,用对象名.方法名()的格式进行访问。

                 类中的数据和方法由所有的实例对象所共享。

        2、实例对象

                 实例对象是通过调用类对象来创建的,调用类对象的方法同调用函数的方法相同。

                 每个实例对象都可以继承类对象的属性,得到自己的命名空间。

               ③ 实例对象拥有私有属性,类的方法中第一个参数默认为self,表示引用方法的对象实例。在方法中对self的属性赋值才会创建属于实例对象的属性


五、类的方法

        Python的类中有两个非常特殊的方法:__init__()和__del__()。__init()__方法称为构造方法,__del__()方法称为析构方法。

        1、构造方法:__init()__

        __init()__方法会在创建实例对象时自动调用,进而实现对类进行初始化的操作。通过有参构造方法,可以将参数color的值赋值给color属性,这样就保证了color属性的值随参数值的变化而变化。当然,构造方法也可以分为带参不带参两种。

class Phone():
    #无参构造方法
    def __init__(self):
        self.color="黑色"
    def describe(self):
        print("这一部手机是%s的!"%(self.color))
phone1=Phone()
phone2=Phone()
phone1.describe()
phone2.describe()
class Phone():
    #带参构造方法
    def __init__(self,color):
        self.color=color
    def describe(self):
        print("这一部手机是%s的!"%(self.color))
phone1=Phone("黑色")

        2、 析构方法:__del()__

        当删除一个实例对象来释放类所占用资源时,Python会默认调用__del()__方法

class Phone()
    #构造方法
    def __init__(self,color):
        self.color=color
    #析构方法
    def __del__(self):
        print("===========del==========")
phone1=Phone("黑色")

运行结果:===========del========== 


案例实施:

class animal:                                        #定义类对对象
    name="panda"                                     #成员变量
    def __init__(self,voice="hello"):                #重载构造函数
        self.voice=voice                             #创建实例(成员)变量并赋初值
    def __del__(self):                               #重载析构函数
        pass                                         #空操作
    def say(self):                                   #重载类的方法
        print("%s的声音是%s"%(self.name,self.voice))
cat=animal("喵喵")                                   #定义实例对象
cat.name="小猫"                                      #实例变量赋值,类属性的赋值
cat.say()                                            #调用类方法
dog=animal("汪汪")
dog.name="小狗"
dog.say()

结果如图所示

  • 28
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值