Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2862401
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: Python/Ruby

2012-03-01 16:56:14

与大多数语言一样,Python 也有私有的概念:

  • 私有函数不可以从它们的模块外面被调用
  • 私有类方法不能够从它们的类外面被调用
  • 私有属性不能够从它们的类外面被访问

  1. 与大多数的语言不同,一个 Python 函数,方法,或属性,是私有还是公有,完全取决于它的名字。
  2. 如果一个 Python 函数,类方法,或属性的名字以两个下划线开始 (但不是结束),它是私有的;其它所有的都是公有的。
  3.  Python 没有类方法保护 的概念 (只能用于它们自已的类和子类中)。类方法或者是私有 (只能在它们自已的类中使用) 或者是公有 (任何地方都可使用)。


  1. #-*- coding:utf-8 -*-
  2. class A:
  3.     
  4.     __xuehao=20
  5.     def __init__(self,myname):
  6.         self.name=myname
  7.         self.__friend="jack"
  8.     def __private(self):
  9.         print'A.__private()'
  10.         
  11.     def public(self):
  12.         print 'A.public()'
  13.         print self.name,self.__xuehao,self.__friend,A.__xuehao


  14. a=A("king")
  15. a.public()
  16. A.__xuehao
  17. #a.private();

  18. 输出:
  19. A.public()
  20. king 20 jack 20
  21. Traceback (most recent call last):
  22.   File "G:\Users\king\eclipsesp\python27\kings.c2100\privateclassTest.py", line 18, in <module>
  23.     A.__xuehao
  24. AttributeError: class A has no attribute '__xuehao'
Python 用下划线作为变量前缀和后缀指定特殊变量。
_xxx      不能用'from module import *'导入
__xxx__ 系统定义名字
__xxx    类中的私有变量名


阅读(2153) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~