当前位置: 首页> 技术文章> Python中的类与对象

Python中的类与对象

Python中的类与对象

一、概念理解

(class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

实例化:创建一个类的实例,类的具体对象。

对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。 方法:类中定义的函数。

类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

实例变量:在类的声明中,属性是用变量来表示的,这种变量就称为实例变量,实例变量就是一个用 self 修饰的变量。

继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样 一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a"关系(例图,Dog是一个Animal)。

方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。


二、定义和使用类

upfile1627609901710.jpg

class Baoan13(object):     #新式类  定义一个类,并且继承object类,父类、基类、超类

class Baoan13():   #经典类,参数列表中没有object

    head='我是一个类变量'    #类变量,可以被类中所有的实例方法调用,不作为实例变量使用

    def __init__(self,name,age,hight):  #构造方法,又称构造函数。作用:初始化类的属性

                         #定义:在类里面,双下滑线构成私有方法,只能被自身或子类访问

        self.name=name   #实例变量(用self修饰的一个变量)

        self.age=age

        self.hight=hight

 

    def play(self):       #实例方法(实例函数)

        print(self.name+'今年'+self.age+'岁了,他的身高是'+self.hight+'cm')

def get_play(self): #这个实例方法是调用上面play的实例方法

        self.play()

upfile1627609976688.jpg

 @classmethod    #@classmethod是一个类方法的装饰器

        #在类中,@开头的称为装饰器

        #装饰器的作用:本身也是一个函数,在不影响原有功能的基础上,添加新的功能

    def func1(cls):   #类方法,以cls修饰的一个方法,类方法的特性:单例模式

        print('我是一个类方法。')

 

    def func2(cls):  #这也是一个类方法,与上面有@classmethod修饰的不一样

        cls.value=20   #类方法变量

        print(cls.value)

 

    @staticmethod   #静态方法的装饰器

    # 静态方法:写在类中的普通方法,能被实例方法和类方法调用,但是不能调用实例方法和类方法

    def func():

        print('我是一个任人调用的静态方法。')

 

def putong():

    print('我只是一个普通函数。')

upfile1627610035675.jpg

if __name__=='__main__':   #主函数调用

    #1调用.类直接调用实例方法(实例函数)

    Baoan13('小明','18','180').play()

    #2.调用.根据类创建一个对象p,创建对象的过程被称为实例化

    # #对象p可以调用类中所有的实例方法(实例函数)和实例变量

    p=Baoan13('小明','18','180')  #常用。创建对象,传入参数(参数数量要与构造的方法一致)

    p.play()    #对象调用实例方法

    # p.get_play()  #对象调用实例方法(实例方法get_play去调用实例方法play

    # print(p.name)  #对象调用实例变量

    # print(p.age)   #对象调用实例变量

    # print(p.hight) #对象调用实例变量

    # print(p.head)  #对象调用类变量

    # p.func1()  #对象调用类方法( @classmethod修饰的)

    # p.func2()  #对象调用类方法

    # p.func()   #对象调用类方法(@staticmethod修饰的)

# putong()  #普通函数的调用


如需了解更多测试技术信息请关注:http://www.duoceshi.cn/ 深圳市多测师信息技术有限公司

 


上一篇: 为什么进行性能测试?

下一篇: 软件测试之手工测试人员如何转测试开发?

QQ技术交流群

多测师官方学习交流
556733550

加入群聊