首页 > 编程语言 >Python中私有变量和私有方法

Python中私有变量和私有方法

时间:2024-05-09 16:25:12浏览次数:20  
标签:__ 变量 私有 self value Python private print

python的私有化是为了规划私有属性,避免非相关的访问【假如!我有老婆,你不能直接知道我老婆是谁,你只有问我才会知道,即我的私有属性只有我知道】

在python中定义私有变量和私有方法只需要在变量名或函数名前加上 "__"两个下划线

在这里插入图片描述

在类内部的方法中使用时 self.__变量名或函数名。

在这里插入图片描述

实际上,如果真要访问私有变量和私有方法,也是可以访问的,因为实际上私有化的操作只是将变量或函数名更改了而已:

下例中由private_value变为了_A__private_value即_类名__属性名】,但为了保持私有性,不建议直接使用这种方法访问
在这里插入图片描述

class A:
    _private=6
    __private_value=5
    def __private_func(self):
        print("hello")
    def get_private_value(self):
        return self.__private_value
a=A()
# print(a.__private_value)###报错,找不到该属性
print(a.get_private_value())
print(a._A__private_value)

私有化变量和方法的继承:【子类不会继承基类私有属性,但仍然通过基类的函数来获取或可以强行访问】

class A:
    _private=6
    __private_value=5
    def __private_func(self):
        print("hello")
    def get_private_value(self):
        return self.__private_value
class B(A):
    pass
b=B()
#学习中遇到问题没人解答?小编创建了一个Python学习交流群:153708845
# print(b.__private_value)#报错
print(b.get_private_value())#可以使用父类的方法来获取私有属性
print(b._A__private_value)#强制访问还是可以的

标签:__,变量,私有,self,value,Python,private,print
From: https://www.cnblogs.com/python1111/p/18182543

相关文章

  • python中小数据池和编码
    ⼀.小数据池在说小数据池之前.我们先看⼀个概念.什么是代码块:根据提示我们从官⽅⽂档找到了这样的说法:APythonprogramisconstructedfromcodeblocks.AblockisapieceofPythonprogramtextthatisexecutedasaunit.Thefollowingareblocks:amodule,......
  • python中7种方法实现字符串的拼接
    1.直接通过(+)操作符拼接>>>'Hello'+''+'World'+'!''HelloWorld!'使用这种方式进行字符串连接的操作效率低下,因为python中使用+拼接两个字符串时会生成一个新的字符串,生成新的字符串就需要重新申请内存,当拼接字符串较多时自然会影响效率。2.通过str.join()方法拼接......
  • Python高级之装饰器
    【一】装饰器【1】什么是装饰器装饰代指为被装饰对象添加新的功能,器代指器具/工具,装饰器与被装饰的对象均可以是任意可调用对象。装饰器的作用就是在不修改被装饰对象源代码和调用方式的前提下为被装饰对象添加额外的功能【2】装饰器的用途软件包含的所有功能的源代码以及......
  • Python高级之生成器
    【一】什么是生成器Python中的生成器是一种特殊的迭代器可以在需要时生成数据,而不必提前从内存中生成并存储整个数据集通过生成器,可以逐个生成序列中的元素,而无需一次性生成整个序列【二】生成器的创建方式【1】列表推导式#列表生成式生成列表num_list=[iforiinra......
  • Python高级之迭代器
    【一】迭代器介绍迭代器就是迭代取值的工具,而迭代是重复反馈过程的活动其目的通常是为了逼近所需的目标或结果,而每一次迭代得到的结果会作为下一次迭代的初始值#只会重复让你输入信息,并不是迭代过程whileTrue:msg=input("请输入信息:").strip()print(msg)#下......
  • Python高级之【补充】算法
    【一】二分法【1】介绍二分法也称为折半法,是一种在有序数组中查找特定元素的搜索算法【2】思路首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤......
  • Python高级之常用的内置函数
    【一】什么是内置函数内置函数就是Python给你提供的,拿来直接用的函数目前共有68个内置函数Built-inFunctionsAabs()aiter()all()any()anext()ascii()Bbin()bool()breakpoint()bytearray()bytes()Ccallable()chr()classmethod()compile()complex()Ddelatt......
  • Python高级之模块与包
    【一】模块介绍【1】什么是模块在Python中,一个py文件就是一个模块,文件名为xxx.py模块名则是xxx,导入模块可以引用模块中已经写好的功能使用模块既保证了代码的重用性,又增强了程序的结构性和可维护性另外除了自定义模块外,我们还可以导入使用内置或第三方模块提供的现成功能......
  • 《最新出炉》系列入门篇-Python+Playwright自动化测试-45-鼠标操作-下篇
    1.简介鼠标为我们使用电脑提供了很多方便,我们看到的东西就可以将鼠标移动过去进行点击就可以打开或者访问内容,当页面内容过长时,我们也可以使用鼠标滚轮来实现对整个页面内容的查看,其实playwright也有鼠标操作的方法。上一篇文章中已经讲解过鼠标的部分操作了,今天宏哥在这里将剩下......
  • Python高级之函数参数进阶Optional
    【一】引言在Python3.5版本后引入的typing模块为Python的静态类型注解提供了支持。这个模块在增强代码可读性和维护性方面提供了帮助。本文将深入探讨typing模块,介绍其基本概念、常用类型注解以及使用示例,以帮助读者更全面地了解和应用静态类型注解。【二】基本类型注解【......