当前位置 博文首页 > Python创建类的方法及成员访问的相关知识总结

    Python创建类的方法及成员访问的相关知识总结

    作者:Z && Y 时间:2021-08-06 18:19

    一、创建类的方法与成员访问

    1.1 创建实例方法并访问

    实例方法是指在类中定义的函数。该函数是一种在类的实例上操作的函数。
    同__init__()方法一样,实例方法的第一个参数必须是self,并且必须包含一个self参数。

    在这里插入图片描述

    1.2 创建数据成员(属性)并访问

    数据成员是指在类中定义的变量,即属性(对象的特征)。根据定义位置,属性(成员变量)
    有两种:一种是实例属性,另一种是类属性(类变量)。

    在这里插入图片描述

    1.2.1 添加与访问方式

    类属性的添加与访问方式同对象属性,只是把self关键字换成类名

    1.2.1.1 类外面添加对象属性

    在这里插入图片描述

    class Information(object):
        def __init__(self, name, age):
            self.name = name
            self.age = age
    
    
    info = Information('杜甫', 20)
    info.sex = '男'
    
    1.2.1.2 类外面获取对象属性

    对象名.属性名

    print(info.sex)

    在这里插入图片描述

    1.2.1.3 类里面获取对象属性

    在这里插入图片描述

    1.3 访问限制:私有成员与公有成员

    类中定义的属性和方法默认为公有属性和方法,该类的对象可以任意访问类的公有成员。

    为了契合封装原则,保证类中的代码不被外部代码轻易访问。 Python支持将类中的成员设
    置为私有成员,在一定程度上限制对象对类成员的访问。

    1.3.1 定义私有成员

    对象无法直接访问私有成员

    在这里插入图片描述

    1.3.2 访问私有属性

    私有属性可在公有方法中通过指代对象本身的默认参数“self”访问,
    类外部可通过公有方法间接获取类的私有属性。

    在这里插入图片描述

    1.3.3 访问私有方法

    私有方法同样在公有方法中通过参数“self”访问。

    在这里插入图片描述

    1.4 类代码块

    Class语句和for、while语句一样,都是代码块,即定义类就是执行代码块。

    class myClass:
        print("This is my class")

    执行上述代码后,会输出“class block”。

    在这里插入图片描述

    1.5 类方法

    1.5.1 类方法

    在这里插入图片描述
    在这里插入图片描述

    1.5.2 修改类属性

    在实例方法中无法修改类属性的值,但在类方法中可以修改类属性的值。

    在这里插入图片描述

    1.5.3 综合示例

    class myClass:
        # 类属性
        msg = '我是类的属性'
    
        # 此注解表示该方法是一个类方法
        @classmethod
        # cls代表当前这个类本身
        def showMsg(cls):
            # 改变类属性的值
            cls.msg = 'really'
            print(cls.msg)
    
    
    # 调用类方法
    myClass.showMsg()
    

    在这里插入图片描述

    1.6 类方法和实例方法的区别

    在这里插入图片描述

    1.7 静态方法

    可有对象调用也可以有类调用

    示例:定义一个包含属性num与静态方法static_method()的类Example。

    class Example:
        num = 10
    
        @staticmethod
        def static_method():
            print(f"类属性的值为: {Example.num}")
            print("静态方法")
    
    
    ex = Example()
    ex.static_method()
    print('-----------')
    Example.static_method()
    

    在这里插入图片描述

    jsjbwy
    下一篇:没有了