专栏首页python3python类的私有变量

python类的私有变量

1.类的私有变量和私有方法

1)_xx 以单下划线开头的表示的是protected类型的变量。即保护类型只能允许其本身与子类进行访问。若内部变量标示,如:当使用“from Mimport”时,不会将以一个下划线开头的对象引入。

2)__xx 双下划线的表示的是私有类型的变量。只能允许这个类本身进行访问了,连子类也不可以用于命名一个类属性(类变量),调用时名字被改变(在类FooBar内部,__boo变成_FooBar__boo,如self._FooBar__boo)

3)__xx__定义的是特列方法。用户控制的命名空间内的变量或是属性,如init , __import__或是file 。只有当文档有说明时使用,不要自己定义这类变量。(就是说这些是python内部定义的变量名)

4)python默认的成员函数和成员变量都是公开的,没有像其他类似语言的public,private等关键字修饰。但是可以在变量前面加上两个下划线"_",这样的话函数或变量就变成私有的。 **情况就是当变量被标记为私有后,在变量的前端插入类名,在类名前添加一个下划线"_",即形成了_ClassName__变量名.**

Python内置类属性

__dict__ : 类的属性(包含一个字典,由类的数据属性组成)

__doc__ : 类的文档字符串

__module__: 类定义所在的模块(类的全名是'__main__.className',如果类位于一个导入模块mymod中,那么className.__module__等于 mymod)

__bases__: 类的所有父类构成元素(包含了一个由所有父类组成的元组)

例子:

class Student(object):

   _name = "huang"

__sex = "male"

def hello(self):

print(self._name)

print(self.__sex)

def get_value(self):

return self.__sex

a = Student()

print (a.hello())

print (a.get_value())

结果:

huang

male

None

male

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • python:面向对象的基本知识

    py3study
  • 用python实现漂亮的烟花demo

    py3study
  • Python pygame库的应用

    今天想用pygame库写一个击打外星人飞船的python程序 这个游戏的效果是操纵一个位于屏幕底端的飞船,通过上下左右控制飞船移动方向,按空格发射子弹...

    py3study
  • python:面向对象的基本知识

    py3study
  • K 近邻法(K-Nearest Neighbor, K-NN)

    树相当于不断地用垂直于坐标轴的超平面将 k 维空间切分,构成一系列的k维超矩形区域。

    Michael阿明
  • 堆排序和优先队列的核心,堆究竟是怎样的数据结构?

    和链表、二叉树以及数组这些热门的数据结构相比,堆相对比较冷门。如果你对数据结构了解不深的话,可能很少听说。但是我们经常用到它,虽然可能你并不一定能感知到。比如说...

    TechFlow-承志
  • 用Python统计你的简书数据

      说来也巧,之前有一次无意间留意到简书好像没有做文章总阅读量的统计(准确的说法应该叫展示),刚好最近有时间,趁这个机会就用Python写了这么个功能,既是学习...

    happyJared
  • 机器学习算法之随机深林算法

    说好的PCA算法先暂时鸽一下,因为还没写完,大概明天发,先发一个机器学习比赛中常见的bagging算法之一:随机深林算法。需要结合之前发的那篇决策树算法一起看。...

    BBuf
  • 流畅的python读书笔记-第十章-继

    然而,使用 super() 最安全,也不易过时。调用框架或不受自己控制的类层次结构中的 方法时,尤其适合使用 super()。

    py3study
  • python爬虫学习之用Python抢火车票的简单小程序

    Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取...

    python学习教程

扫码关注云+社区

领取腾讯云代金券