_xx 单下划线开头

Python中没有真正的私有属性或方法,可以在你想声明为私有的方法和属性前加上单下划线,以提示该属性和方法不应在外部调用.如果真的调用了也不会出错,但不符合规范.

#! /usr/bin/pythondef singleton(cls):_instance = {}    # 不建议外部调用def _singleton(*args, **kargs):if cls not in _instance:_instance[cls] = cls(*args, **kargs)return _instance[cls]return _singleton@singleton
class A(object):a = 1def __init__(self, x = 0):self.x = xa1 = A(2)
a2 = A(3)print id(a1)
print id(a2)
print a1.x
print a2.x

__ xx 双下划线开头

双下划线开头,是为了不让子类重写该属性方法.通过类的实例化时自动转换,在类中的双下划线开头的属性方法前加上”_类名”实现.

#! /usr/bin/python
# -*- coding: utf-8 -*-
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''class A(object):def __init__(self, x):self.__a = 2self.x = xdef __b(self):self.x = 3a = A(2)
# 会报错,"AttributeError: 'A' object has no attribute '__a'"
# print a.x, a.__a
print a.x, a._A__a
a._A__b()
print a.x

__ xx __

此种写法为Python内建属性方法,最好不要在外部调用

Python中_,__,__xx__的区别相关推荐

  1. Python中_,__,__xx__方法区别

    _xx 单下划线开头 Python中没有真正的私有属性或方法,可以在你想声明为私有的方法和属性前加上单下划线,以提示该属性和方法不应在外部调用.如果真的调用了也不会出错,但不符合规范. 方法就是以单下 ...

  2. python中文意思k-Python中_,__,__xx__的区别

    上面的代码片段来自于django源码(django/forms/forms.py).这里的errors是一个属性,属于API的一部分,但是_get_errors是私有的,是不应该访问的,但可以通过er ...

  3. python有关迭代器和生成器的面试题_【面试题 | Python中迭代器和生成器的区别?】- 环球网校...

    [摘要]今天给大家解答一道Python常见的面试题,希望这个面试栏目,给那些准备面试的同学,提供一点点帮助!小编会从最基础的面试题开始,每天一题.如果参考答案不够好,或者有错误的话,麻烦大家可以在留言 ...

  4. python2中xrange比range优点_【Python面试】 说说Python中xrange和range的区别?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  5. python range 步长为负数_【Python面试】 说说Python中xrange和range的区别?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  6. python中imread用法_【转载】Python 中各种imread函数的区别与联系

    Python 中各种imread函数的区别与联系 最近一直在用python做图像处理相关的东西,被各种imread函数搞得很头疼,因此今天决定将这些imread总结一下,以免以后因此犯些愚蠢的错误.如 ...

  7. python中函数和方法的区别

    本篇内容主要介绍从几个维度来介绍下python中函数和方法的区别: 首先,从分类的角度来分析. (1)函数的分类: 内置函数:python内嵌的一些函数. 匿名函数:一行代码实现一个函数功能. 递归函 ...

  8. python中break和continue的区别

    python中break和continue的区别 break 结束for 或者while 循环  后面还没循环到的 不再循环 continue 当满足某种条件时结束当前值的循环 后面没有循环的继续循环 ...

  9. python中bytearray和java中byte[]的区别_Python经典面试题:说说Python中xrange和range的区别?...

    昨晚一小伙后台问xrange和range有啥区别,讲了下他倒领悟的挺快,其实这也是你各面试Python岗位,经常会遇到的Python面试题,长个心眼哈,说不定明年3月你找工作就用上了. 废话不多说,开 ...

最新文章

  1. Active Directory 对象授权还原
  2. DPM恢复Exchange 2013单个邮箱
  3. DataFountain训练赛 | 用户逾期行为预测
  4. js md5 过滤表情 数据签名
  5. oracle布尔true 1,将.NET布尔数据类型映射到实体框架中的oracle数(1,0)会抛出错误
  6. MySQL缓存的查询和清除命令使用详解
  7. java 缓存分页_基于redis做缓存分页
  8. spi flash驱动
  9. linux常用命令--开发调试篇
  10. java vector实现的接口_java的List接口的实现类 ArrayList,LinkedList,Vector 的区别
  11. 使用NHibernate, Oracle Clob/NClob无法插入
  12. C++第三方库管理工具vcpkg使用教程
  13. boobooke ORACLE MYSQL C JAVA视频学习资料
  14. 宝塔面板批量封IP---node.js增量式封锁脚本(每日自动封代理池IP)
  15. mt7620 外置pa_openwrt在mt7620a芯片上对外置PA的支持
  16. OCSNG inventory | 介绍
  17. 以用户需求为核心能玩出什么新花样?魅族 19 主理人计划构建理想机型
  18. 最近大街上,到处都是X团的地推
  19. VMVare中Ubuntu报错:Drag and drop is not supported
  20. IOS开发之内购-AppStore

热门文章

  1. Datatable删除行的Delete和Remove方法介绍
  2. ECshop网点程序优化-后台添加类目自动选择上次父类目并计算Sort Order
  3. Kerberos策略的配置
  4. linux下arp***的解决方案[转]
  5. linux 暂停一段时间,sleep命令_Linux sleep命令:让程序暂停或休眠一段时间
  6. SAP APO 介绍
  7. 生产订单成本的计划、控制和结算
  8. 从行业龙头到世界500强,中国科技企业要跨过哪些坎?
  9. “双创指数”引行业拼抢,基民的“机会”又双叒叕来了?
  10. 千灯腾碧人潮涌,蓬勃“雨花”气如虹