python 限制访问

上次在学习python class的时候,我们在class内部定义了属性,在class外部,我们可以通过 实例去访问这些属性。

class Student:
    ....

bart = Student()
print(bart.name)

如果不想让外部访问class内部属性,可以将属性名前加上"__"
这样就能够避免class内部的属性直接被外部访问,意思是将属性设置成private(私有属性)。但是python本身其实没有限制访问的机制,之所以没办法直接访问,是因为python解释器把__name属性自动修改成了_Student__name。我们可以通过实例加_Student__name的方式访问class内部的__name属性,但是,强烈不建议使用这种方式,因为python的版本不同,解释器会将__name属性解释成不同的格式,这么做会导致不同版本的python运行代码会报错。
我们可以通过在class内部定义方法来访问_name,一般名称方式为**get属性名**

class Student(object):
    def __init__(self):
        self.__name=“paul”
        self.__score=87

    def get_name(self):
        return self.__name

同样,如果要修改class的私有变量,可以在class内部定义set_name方法,在方法内,可以对变量进行处理。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。