美文网首页
私有变量访问

私有变量访问

作者: _PatrickStar | 来源:发表于2019-08-06 21:28 被阅读0次
class Student:
    __name = "三毛"
    school = "北大"


print(Student.school)
# print(Student.__name)

如果将# print(Student.__name) 注释拿掉 运行会报错,因为私有变量不能直接访问
报错如下

Traceback (most recent call last):
  File "F:/python/python interview question/training/private_var.py", line 7, in <module>
    print(Student.__name)   #直接访问会报错 不存在__name属性
AttributeError: type object 'Student' has no attribute '__name'

打印Student的方法内置方法

class Student:
    __name = "张三"  #私有变量 单侧双下滑线加名字
    school = "北大"

print(Student.school)
# print(Student.__name)   #直接访问会报错 不存在__name属性
print(dir(Student))

第一个内置方法Student__name,所以猜测私有变量访问方法是通过类名+变量名的形式访问,如下:

['_Student__name', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'school']

于是打印 _Student__name验证

class Student:
    __name = "张三"  #私有变量 单侧双下滑线加名字
    school = "北大"
    __age = 18

# print(Student.school)
# print(Student.__name)   #直接访问会报错 不存在__name属性
# print(dir(Student))
print(Student._Student__name)

输出结果:张三
验证成功!
结论:私有变量访问方法是通过_类名+变量名的形式访问

相关文章

  • 私有变量访问

    如果将# print(Student.__name) 注释拿掉 运行会报错,因为私有变量不能直接访问报错如下 打印...

  • 7.4私有变量

    任何函数中定义的变量,都可以认为是私有变量,因为不能在外部访问访问这些变量。私有变量包括函数的参数,局部变量,和在...

  • JavaScript函数表达式——私有变量

    私有变量 任何在函数中定义的变量,都可以认为是私有变量,因为不能在函数的外部访问这些变量,私有变量包括函数的参数,...

  • Web36.this_原型链_继承

    三种变量 实例变量: (this)类的实例产能访问到的变量静态变量: (属性)直接类型对象能访问到的变量私有变量:...

  • 犯过的一些蠢错

    block直接使用私有变量_property 在代码块中直接访问私有变量相当于self->_property。虽然...

  • [iOS]访问私有变量

    访问对象私有变量的方法有两中 KVC 和 Runtime机制 今天主要说一下KVC吧,runtime有时间单独...

  • go print "%+v" 可以打印私有变量;reflect遍

    go print函数“%+v”可以访问私有变量(如果私有变量里有map,打印相当于读,会有map并发读写问题)比如...

  • 【函数表达式】私有变量

    1、任何在函数中定义的变量,都可以认为是私有变量,不能在函数外部访问这些变量。2、私有变量包括:函数的参数、局部变...

  • ios 访问或修改私有变量的方式

    iOS中私有变量之说,是不绝对的,没有绝对的私有变量。有时候我们需要访问在.m文件中声明的属性变量或者在.h文件中...

  • 一文搞懂单例模式

    一、 预备知识 首先解决一个问题“如何访问私有静态成员变量” 定义并初始化私有静态成员变量x 在main函数中...

网友评论

      本文标题:私有变量访问

      本文链接:https://www.haomeiwen.com/subject/cddgdctx.html