python默认的成员函数和成员变量都是公开的,python私有属性和方法没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只需要在变量名或函数名前加上 "__"两个下划线,那么这个函数或变量就会为私有的了。 在内部,python使用一种 name mangling 技术,将 __membername替换成 _classname__membername,所以你在外部使用原来的私有成员的名字时,会提示找不到。 比如:
class Person:
def __init__(self):
self.__name = 'haha'#私有属性
self.age = 22
def __get_name(self):##私有方法
return self.__name
def get_age(self):
return self.age
person = Person()
print person.get_age()
print person.__get_name()
def __init__(self):
self.__name = 'haha'#私有属性
self.age = 22
def __get_name(self):##私有方法
return self.__name
def get_age(self):
return self.age
person = Person()
print person.get_age()
print person.__get_name()
运行结果是:22 Traceback (most recent call last): File "E:\pythoner\zenghe\jay.py", line 38, in print person.__get_name() AttributeError: Person instance has no attribute '__get_name'
我们这里定义的__name是私有属性,__get_name()是私有方法。如果直接访问的话,会提示找不到相关的属性或者方法,但是如果你真要访问私 有的相关数据的话, 也是可以访问的,严格地说,私有方法在它们的类外是可以访问的,只是不容易 处理。在 Python 中没有什么是真正私有的;在内部,私有方法和属性的名字被忽然改变和恢复,以致于使得它们看上去用它们给定的名字是无法使用的
相关推荐
本文实例分析了python的私有属性和方法。分享给大家供大家参考。具体实现方法如下: python默认的成员函数和成员变量都是公开的,并且没有类似别的语言的public,private等关键词来修饰。 在python中定义私有变量只...
本文实例讲述了Python 类的私有属性和私有方法。分享给大家供大家参考,具体如下: xx:公有变量 _xx:公有变量或方法,不能通过import导入其他模块(只有模块内部使用)。类对象和子类可以访问 __xx:私有变量或方法(伪...
本文实例讲述了Python面向对象之私有属性和私有方法。分享给大家供大家参考,具体如下: 01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被...
本文实例讲述了Python面向对象程序设计之私有属性及私有方法。分享给大家供大家参考,具体如下: 如果有一个对象,当需要对其进行修改属性时,有2种方法: (1)对象名.属性名=数据—->直接修改 (2)对象名.方法名...
__name="私有属性" def func(self): print(C.__name) class sub_C(C): def info(self): print(C.__name)#派生类中不可以访问父类的私有字段 obj=C() obj.func() obj=sub_C() obj.info() 方法、属性的访问于上述...
实例化对象名._类名__私有属性名 class Flylove: price = 123 def __init__(self): ...以上这篇python直接访问私有属性的简单方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大
python的私有化是为了规划私有属性,避免非相关的访问【假如!我有老婆,你不能直接知道我老婆是谁,你只有问我才会知道,即我的私有属性只有我知道】 在python中定义私有变量和私有方法只需要在变量名或函数名前...
_x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 _xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户名字...
本文实例讲述了Python编程中属性和方法使用技巧。分享给大家供大家参考。具体分析如下: 一、属性 在python中,属性分为公有属性和私有属性,公有属性可以在类的外部调用,私有属性不能在类的外部调用。公有属性可以...
③ 私有属性不能够从它们的类外面被访问 与大多数的语言不同,一个 Python 函数,方法,或属性是私有还是公有,完全取决于它的名字。 如果一个 Python 函数,类方法,或属性的名字以两个下划线开始(但不是结束),...
本文实例讲述了Python可变和不可变、类的私有属性。分享给大家供大家参考,具体如下: 可变和不可变 items = [] print(id(list)) items.append(2) # items值改变了 print(id(list)) # 但内存地址没有变 id()函数...
- **dir()函数**:介绍了`dir()`函数的使用方法,可用于获取模块、类或对象的所有属性和方法。 - **包**:阐述了包的定义及使用方法,以及如何组织多个相关模块。 - **从包中导入所有内容(import*)**:讨论了如何...
隐藏对象的属性和实现细节,仅对外提供公共访问方式。 【好处】 1. 将变化隔离; 2. 便于使用; 3. 提高复用性; 4. 提高安全性; 【封装原则】 1. 将不需要对外提供的内容都隐藏起来; 2. 把属性都隐藏,提供公共...
- **封装**:讨论封装的作用,如何使用私有属性和方法保护类内部状态。 #### 5. 文件操作与异常处理 - **文件读写**:学习如何使用Python进行文件的读取与写入操作。 - **异常处理**:掌握try-except语句捕获异常,...
- **dir() 函数的用途**:解释 dir() 函数的作用,即获取对象的所有属性和方法。 - **使用示例**:提供示例代码说明如何使用 dir() 函数。 ##### 6.4 包 (Packages) - **包的概念**:介绍包的概念及其在模块组织中...
3. **封装性**:私有属性和方法的实现,__slots__ 的使用。 4. **抽象基类**:ABC(Abstract Base Classes)的概念及其在OOP中的作用。 ### 三、高级特性 1. **装饰器**:装饰器的基本概念、使用方式以及应用场景...
- 封装的概念,包括私有变量和方法的使用,以及如何通过property装饰器将方法转换为属性。 5. 运算符: - 位运算符的使用,包括位与(&)、位或(|)、位非(~)、位异或(^)、左移()和右移(>>)。 - 逻辑运算符and和or...
继承是面向对象编程的关键特性,允许子类继承父类的属性和方法。Python支持单继承、多继承、多级继承、分层继承和混合继承等多种方式。 7. **Flask框架** Flask是一个轻量级的Web应用框架,基于Werkzeug WSGI工具...
- **封装性**:通过私有属性和方法实现代码的隐藏性,增强程序安全性。 #### 五、文件操作与异常处理 - **文件读写**:掌握如何打开、读取、写入和关闭文件。 - **异常处理**:学会使用try-except语句捕获并处理...
**4.3 dir()函式**:介绍如何使用dir()函数获取对象的所有属性和方法。 **4.4 包**: - **包的概念**:解释什么是包以及它在组织大型项目中的作用。 - **从包中导入\***:探讨如何从包中导入所有模块。 - **内部包...