美文网首页
python保护变量,私有变量,私有方法

python保护变量,私有变量,私有方法

作者: 劲草浅躬行 | 来源:发表于2019-07-14 16:34 被阅读0次

简述:

  1. func: 定义的是特殊方法,一般是系统定义名字 ,类似 init() 之类的。
  2. _func: 以单下划线开头的表示的是 protected 类型的变量,即保护类型只能允许其本身与子类进行访问,不能用于 from module import *
  3. __func: 双下划线的表示的是私有类型(private)的变量, 只能是允许这个类本身进行访问了。
    func:就是public方法

细说:

1. 私有变量

class A(object):
    def __init__(self):
        self.name='liu'
        self._gender='nv'
        self.__age=40

p=A()
print(p.name)
print(p._gender)
print(p.__age) # 报错,这样访问不了
print(p._A__age) #可以访问到,私有变量被名称替换

如上所示,无法直接访问实例的私有变量,因为python内部对私有变量进行名称替换。如果想要访问私有变量,建议使用类的函数来实现。私有变量和私有方法存在的一个很重要的原因是不想被实例拿到以至于误修改,起到对变量和方法的修改。

class A(object):
    def __init__(self):
        self.name='liu'
        self._gender='nv'
        self.__age=40
    #通过定义类方法获取/改变私有变量。
    def get_age(self):
        return self.__age
  1. 私有方法
class A(object):
    def __init__(self):
        self.name='liu'
        self._gender='nv'
        self.__age=40
    def __private1(self):
        print('private1')
    def _protect1(self):
        print('protect1')

class B(A):
    def __init__(self):
        pass
p=A()
p2=B()
#p.private1() # 私有方法受保护,类实例无法直接调用
#p2.__private1() # 私有方法受保护,子类无法调用
p2._protect1()
  1. 保护方法
    只允许类本身和子类访问,无法被from module import

相关文章

  • 2018-06-28 python 类的私有变量和私有方法

    转发python 类的私有变量和私有方法 类的私有变量和私有方法在Python中可以通过在属性变量名前加上双下划线...

  • python保护变量,私有变量,私有方法

    简述: func: 定义的是特殊方法,一般是系统定义名字 ,类似 init() 之类的。 _func: 以单下划线...

  • python下划线定义属性

    类的私有变量和私有方法 在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性 特殊变量命名 1、 ...

  • JavaScript闭包

    JavaScript闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。就...

  • iOS知识点总结

    一、Object-C中变量默认是私有的吗,方法默认是私有的吗? Object-C中既有私有方法,也有私有变量。 1...

  • 3.类的访问控制

    目录:1.私有(private)属性2.保护变量3.私有方法4.属性装饰器5.封装概念 1.私有(private)...

  • 作用域链,原型链,面向对象的理解

    作用域链: 函数执行会形成一个私有的作用域,形成和当前私有作用域中声明的变量都是私有变量,当前私有作用域有自我保护...

  • 私有变量和私有方法的访问

    OC中没有绝对的私有变量和私有方法对于私有变量,例如在.h文件中使用@private修饰的变量;在.m文件中扩展中...

  • 闭包-计数器困境

    闭包是一种保护私有变量的机制,在函数执行时形成私有的作用域,保护里面的私有变量不受外界干扰。直观的说就是形成一个不...

  • 40.私有变量、方法实现类的封装

    私有变量 私有变量或者私有属性,一般以 双下划线开头 的变量可以在class内部通过方法调用,但是不能被实例化的对...

网友评论

      本文标题:python保护变量,私有变量,私有方法

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