资讯专栏INFORMATION COLUMN

python私有化

104828720 / 2557人阅读

摘要:但是每次通过这样的方式对私有变量进行操作极不方便,而且如果有其他类继承了当前的类,那么当前类中的私有变量是无法继承的。还有一种变量前面只有一个,这种变量是私有化属性或方法,禁止导入类对象和子类可以访问。

先看个例子:

执行后会是什么效果?

因为,__arg是私有变量,无法在外部直接访问。事实上,通过name mangling __arg变成了_Test__arg,即_类名__变量名

所以通过t._Test__arg方式可以访问。但是每次通过这样的方式对私有变量进行操作极不方便,而且如果有其他类继承了当前的类,那么当前类中的私有变量是无法继承的。

执行的结果是:

为此我们想到可以通过在当前类中增加方法来操作。

还有一种变量前面只有一个_,这种变量是私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问。

其他情况:

xx__:双前后下划线,用户名字空间的魔法对象或属性。例如:__init , __ 不要自己发明这样的名字

xx_:单后置下划线,用于避免与Python关键词的冲突

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/40714.html

相关文章

  • [零基础学python]私有和专有

    摘要:私有函数在某些时候,会看到有一种方法命名比较特别,是以双划线开头的,将这类命名的函数方法称之为私有函数。如果一个函数类方法或属性的名字以两个下划线开始但不是结束它是私有的其它所有的都是公有的。比如前面反复提到的就是一个典型的专有方法。 在任何语言中,都会规定某些对象(属性、方法、函数、类等)只能够在某个范围内访问,出了这个范围就不能访问了。这是公、私之分。此外,还会专门为某些特殊的东西...

    tinysun1234 评论0 收藏0
  • Python基础之(八)类

    摘要:方法绑定方法多重继承实例化实现了方法和实例的绑调用绑定方法非绑定方法在子类中,父类的方法就是非绑定方法,因为在子类中,没有建立父类的实例,却要是用父类的方法。 类 创建类 第一形式 # !/usr/bin/env python # coding=utf-8 class Person(object): #object表示继承自object类,Python3中可省略次内容 ...

    Freeman 评论0 收藏0
  • 有化规则与属性Property

    摘要:上一篇文章装饰器真正入门的鉴定标准下一篇文章垃圾回收详解私有化变量定义规则变量形式解读公有变量单前置下划线,私有化属性或方法,禁止导入,类对象和子类进可以访问。双前置下划线,避免与子类中的属性命名冲突,无法再在外部直接访问。 上一篇文章:Python装饰器:python真正入门的鉴定标准下一篇文章:Python垃圾回收详解 1、私有化 变量定义规则 变量形式 解读 xx 公...

    whjin 评论0 收藏0
  • Python方法(二) - 类与继承

    摘要:在类内部的方法中使用时。类的私有方法两个下划线开头,声明该方法为私有方法,不能在类地外部调用。先在本类中查找调用的方法,找不到才去基类中找。如果在继承元组中列了一个以上的类,那么它就被称作多重继承。 类定义 类对象:创建一个类之后,可以通过类名访问、改变其属性、方法 实例对象:类实例化后,可以使用其属性,可以动态的为实例对象添加属性(类似javascript)而不影响类对象。 类...

    DevWiki 评论0 收藏0
  • Python_OOP

    摘要:魔法方法类构造方法魔法方法初始化对象创建对象的过程创建一个对象解释器会自动的调用方法返回创建的对象的引用,给实例实例化执行该方法,返回值。当引用计数为时,该对象生命就结束了。 define class class的三个组成部分: 类的名称:类名 类的属性: 一组数据 类的方法:允许对进行操作的方法(行为) 定义 class Student (object): pass...

    tyheist 评论0 收藏0

发表评论

0条评论

104828720

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<