Python 类的私有属性和私有方法实例分析

本文实例讲述了Python 类的私有属性和私有方法。分享给大家供大家参考,具体如下:

xx:公有变量

_xx:公有变量或方法,不能通过import导入其他模块(只有模块内部使用)。类对象和子类可以访问

__xx:私有变量或方法(伪私有),类外部不能直接访问。

__xx__:公有变量或方法,子类可以访问。魔法方法或属性(例如:__init__),不推荐这样命名。

xx_:公有变量或方法。一般为了避免和python关键字冲突,不推荐这样命名。

在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法

demo.py(私有属性,私有方法):

class Women:
  # 定义属性和方法时,属性名或方法名前增加两个下划线__表示私有属性或私有方法
  def __init__(self, name):
    self.name = name # 公有属性,外界可以直接访问
    self.__age = 18  # 私有属性,外界及其子类不能直接访问
  # 私有方法,外界不能直接访问
  def __secret(self):
    # 对象内部可以直接访问对象的私有属性
    print("%s 的年龄是 %d" % (self.name, self.__age))
xiaofang = Women("小芳")
# 私有属性,在外界或其子类不能够被直接访问
# print(xiaofang.__age)
# 私有方法,同样不允许在外界直接访问
# xiaofang.__secret()
# xiaofang.__age = 20  # 只是动态绑定了一个新属性,并不会影响私有的__age属性。
# 可以通过 _类名__私有属性名/方法名 的方式强行访问私有属性和私有方法 (不推荐)
print(xiaofang._Women__age)
xiaofang._Women__secret()

运行结果:

18
小芳 的年龄是 18

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计入门与进阶教程》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python编码操作技巧总结》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

(0)

相关推荐

  • Python可变和不可变、类的私有属性实例分析

    本文实例讲述了Python可变和不可变.类的私有属性.分享给大家供大家参考,具体如下: 可变和不可变 items = [] print(id(list)) items.append(2) # items值改变了 print(id(list)) # 但内存地址没有变 id()函数获取内存地址. a = "jack" print(id(a)) b = "jack" print(id(b)) # b内存地址和上面a一样 a = "zhangSan" p

  • 实例讲解Python中的私有属性

    在Python中可以通过在属性变量名前加上双下划线定义属性为私有属性,如例子: 复制代码 代码如下: #! encoding=UTF-8   class A:     def __init__(self):                  # 定义私有属性         self.__name = "wangwu"                  # 普通属性定义         self.age = 19          a = A()   # 正常输出 print a.ag

  • Python面向对象程序设计中类的定义、实例化、封装及私有变量/方法详解

    本文实例讲述了Python面向对象程序设计中类的定义.实例化.封装及私有变量/方法.分享给大家供大家参考,具体如下: 1. 定义类 python中定义一个类的格式如下: class MyClass(object): def __init__(self,data1,data2): self.__data1=data1 self.data2=data2 def __func1(self): print("MyClass类的私有方法被调用!") def print_data(self): s

  • python中私有函数调用方法解密

    本文实例讲述了python中私有函数调用方法.分享给大家供大家参考,具体如下: 与大多数语言一样,Python 也有私有的概念: ① 私有函数不可以从它们的模块外面被调用 ② 私有类方法不能够从它们的类外面被调用 ③ 私有属性不能够从它们的类外面被访问 与大多数的语言不同,一个 Python 函数,方法,或属性是私有还是公有,完全取决于它的名字. 如果一个 Python 函数,类方法,或属性的名字以两个下划线开始(但不是结束),它是私有的:其它所有的都是公有的. Python 没有类方法 保护

  • 跟老齐学Python之私有函数和专有方法

    在任何语言中,都会规定某些对象(属性.方法.函数.类等)只能够在某个范围内访问,出了这个范围就不能访问了.这是"公"."私"之分.此外,还会专门为某些特殊的东西指定一些特殊表示,比如类的名字就不能用class,def等,这就是保留字.除了保留字,python中还为类的名字做了某些特殊准备,就是"专有"的范畴. 私有函数 在某些时候,会看到有一种方法命名比较特别,是以"__"双划线开头的,将这类命名的函数/方法称之为"

  • python直接访问私有属性的简单方法

    实例化对象名._类名__私有属性名 class Flylove: price = 123 def __init__(self): self.__direction = 'go beijing .' zIng = 'wait car,many person' if __name__ == '__main__': print Flylove.price fly = Flylove() print fly._Flylove__direction 以上这篇python直接访问私有属性的简单方法就是小编分

  • python私有属性和方法实例分析

    本文实例分析了python的私有属性和方法.分享给大家供大家参考.具体实现方法如下: python默认的成员函数和成员变量都是公开的,并且没有类似别的语言的public,private等关键词来修饰. 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了. 在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成

  • Python面向对象程序设计之私有属性及私有方法示例

    本文实例讲述了Python面向对象程序设计之私有属性及私有方法.分享给大家供大家参考,具体如下: 如果有一个对象,当需要对其进行修改属性时,有2种方法: (1)对象名.属性名=数据---->直接修改 (2)对象名.方法名()----->间接修改 为了更好的保障属性安全,不能随意修改,一般处理方式为: (1)将属性定义为私有属性 (2)添加一个可以调用的方法,供调用,也就是间接调用属性 首先我讲解下私有属性的例子: 1.下面这个是一个错误的例子: class People(object): de

  • python里运用私有属性和方法总结

    如何在PYTHON里运用私有属性和方法 class File: def __init__(self, name): self.name = name self.code = "ABCDEF" file_A = File("file_A") #假设我们有一个类,叫做文件类,设置一个对象file_A. file_A.code #如果直接调用属性,是可以看到属性里面有什么,但是如果这是个机密的密码不能公布,是不能这么处理的. class File: def __init_

  • python爬虫模拟浏览器的两种方法实例分析

    本文实例讲述了python爬虫模拟浏览器的两种方法.分享给大家供大家参考,具体如下: 爬虫爬取网站出现403,因为站点做了防爬虫的设置 一.Herders 属性 爬取CSDN博客 import urllib.request url = "http://blog.csdn.net/hurmishine/article/details/71708030"file = urllib.request.urlopen(url) 爬取结果 urllib.error.HTTPError: HTTP

  • python中pygame针对游戏窗口的显示方法实例分析(附源码)

    本文实例讲述了python中pygame针对游戏窗口的显示方法.分享给大家供大家参考,具体如下: 在这篇教程中,我将给出一个demo演示: 当我们按下键盘的'f'键的时候,演示的窗口会切换到全屏显示和默认显示两种显示模式 并且在后台我们可以看到相关的信息输出: 上面给出了一个简单的例子,当然在pygame的官方文档中有对显示策略的更权威的说明: http://www.pygame.org/docs/ref/display.html#pygame.display.set_mode ''' pyga

  • Python生成MD5值的两种方法实例分析

    本文实例讲述了Python生成MD5值的两种方法.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import datetime # NO.1 使用MD5 import md5 src = 'this is a md5 test.' m1 = md5.new() m1.update(src) print m1.hexdigest() 运行结果: 174b086fc6358db6154bd951a8947837 # -*- coding:utf-8 -*- # NO

  • Python 类的私有属性和私有方法实例分析

    本文实例讲述了Python 类的私有属性和私有方法.分享给大家供大家参考,具体如下: xx:公有变量 _xx:公有变量或方法,不能通过import导入其他模块(只有模块内部使用).类对象和子类可以访问 __xx:私有变量或方法(伪私有),类外部不能直接访问. __xx__:公有变量或方法,子类可以访问.魔法方法或属性(例如:__init__),不推荐这样命名. xx_:公有变量或方法.一般为了避免和python关键字冲突,不推荐这样命名. 在 定义属性或方法时,在 属性名或者方法名前 增加 两个

  • Python 私有属性和私有方法应用场景分析

    类的私有属性和方法 Python是个开放的语言,默认情况下所有的属性和方法都是公开的 或者叫公有方法,不像C++和 Java中有明确的public,private 关键字来区分私有公有. Python默认的成员函数和成员变量都是公开的,类的私有属性指只有在类的内部使用的属性或方法,表现形式为以"__" 属性名或方法名以双下划线开头. class Test(object): __count = 0 # 私有属性 __count def get_count(self): return se

  • python基础知识之私有属性和私有方法

    私有权限 面向对象三大特性:封装.继承.多态 封装的意义: 将属性和方法放到一起做为一个整体,然后通过实例化对象来处理: 隐藏内部实现细节,只需要和对象及其属性和方法交互就可以了: 对类的属性和方法增加 访问权限控制. 私有权限:在属性名和方法名 前面 加上两个下划线 __ 类的私有属性 和 私有方法,都不能通过对象直接访问,但是可以在本类内部访问: 类的私有属性 和 私有方法,都不会被子类继承,子类也无法访问: 私有属性 和 私有方法 往往用来处理类的内部事情,不通过对象处理,起到安全作用.

  • Python 私有属性与私有方法

    目录 1.场景定义 2.语法定义 3.调用分析 4.Python伪私有属性和私有方法 1. 场景定义 私有属性: 是指在 Python 的面向对象开发过程中,对象的某些属性只想在对象的内部被使用,但不想在外部被访问到这些属性. 即:私有属性是对象不愿意公开的属性. 私有方法: 是指在 Python 的面向对象开发过程中,对象的某些方法或者称为函数只想在对象的内部被使用,但不想在外部被访问到这些方法或函数. 即:私有方法是对象不愿意公开的方法或函数. 2. 语法定义 在 Python 中定义私有属

  • Python面向对象之私有属性和私有方法应用案例分析

    本文实例讲述了Python面向对象之私有属性和私有方法.分享给大家供大家参考,具体如下: 01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象 不希望公开的 方法 定义方式 在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的就是 私有 属性或方法 class Women: def __init__(self, name): self

随机推荐