Python中类的变量,一个下划线与两个下划线的区别

Python中下划线的含义及用法 Python中各种下划线的含义及使用方法 阅读详情
形似      功能
__xx这是私有变量, 只有内部可以访问,外部不可以访问。但是也不是一定不可以访问,只要以 _类名__xx样式就可以访问 。但最好不要这样做,养成良好编程习惯
_x这是实例变量,可以访问,但是不要轻易访问。按照约定俗成,当你看到这样的变量时,意思就是,“虽然我可以被访问,但请把我视为私有变量,不要随意访问”。

代码演示

class A:
    def __init__(self):
        self._name = 1
        self.__age = 2


a = A()
print(a.__dict__)   # {'_name': 1, '_A__age': 2}
print(a._name )     # 返回 1。说明一个下划线可以被访问,只是在a.中不会显示。
print(a.__age)      # 语法报错
print(a._A__age)    # 返回 2。说明私有变量在外部并不是完全不能被访问

结合上面代码,问:若使用 a.__gender = "男" 定义一个实例属性,这个实例属性是否私有变量?其他实例对象能否访问?

使用a.gender定义的实例属性属性不是私有变量,这种方式可以看做是为实例对象a增加了一个__gender属性,这个属性只有实例对象a有,其他实例对象没有,所以其他实例对象也访问不了。

class A:
    def __init__(self):
        self._name = 1
        self.__age = 2


a = A()
print(a.__dict__)   # {'_name': 1, '_A__age': 2}
a.__gender = "男"
print(a.__dict__)   # {'_name': 1, '_A__age': 2, '__gender': '男'}
print(a.__gender)   # 返回“男”

b = A()
print(b.__dict__)   # {'_name': 1, '_A__age': 2}
b.__gender      # 语法报错

-事必有法,然后有成- 最后祝大家早日达到测试的天花板!



 以下是我收集到的比较好的学习教程资源,虽然不是什么很值钱的东西,如果你刚好需要,可以评论区,留言【777】直接拿走就好了

Python全局变量,私有变量,类变量,实例变量的区别 全局变量(global variable) 在Python中,仅在函数内引用的变量是隐式全局变量。如果在函数体内的任何位置为变量赋值,除非明确声明为全局,否则将其视为局部变量 foo = 21 #全局变量 def A_Test(): global foo print(foo) #21 def B_Test(): foo = 1... 阅读详情

相关推荐

Windows 2012 SYSVOL复制失败的处理

题外话:晓原理、知架构、查日志是排错的三件法宝今天在DC1上新建并链接了一个组策略对像,在客户端刷新时,却报下面的错误:“处理组策略失败。Windows无法应用组策略对象LDAP….”如下图所示:于是在客户端用\\domain.com访问,发现\\domain.com\SYSVOL\domain.com\policies下面没有上面报错的组策略对象。这是怎么一回事呢,pin...

weixin_33989780的博客 1669

python-统计数字、字母、下划线的数量

#第一种 #直接通过范围查找 shuzi =0 zhimu =0 xiahuaxian =0 qita =0 a = 'dsadasd34sda3dfsf_gfd???' b = len(a) for i in range(0,b): if a[i]>='1' and a[i]<='9': shuzi+=1

前路艰险,路途漫长 2378

数据增强综述及albumentations代码使用

数据增强综述及albumentations使用基于基本图形处理的数据增强 本文涉及到的资料: 1.A survey on Image Data Augmentation for Deep Learning 2.Albumentations: Fast and Flexible Image Augmentations 3.Code 基于基本图形处理的数据增强 1.翻转;2.旋转;3.仿射变换;4.色彩空间(RGB、YUV、CMY、HSV,在图像情感分析中会影响标签。最简单的方法就是只改变一个通道。对比度、直方

qq_41917697的博客 6680

Python中类的变量,一会一个下划线一会两个下划线,到底有什么区别?

Python中类的变量,一会一个下划线一会两个下划线,到底有什么区别? 下划线与变量的组合一共有以下三种情况,搞清楚他们之间的关系会很有帮助! 形似 功能 __xx 这是私有变量, 只有内部可以访问,外部不可以访问。但是也不是一定不可以访问,只是解释器把该变量解释成 类名__xx 。但最好不要这样做,养成良好编程习惯 _x 这是实例变量,可以访问,但是不要轻易访问。按照约定俗...

bbj1030的博客 2163

空地多无人平台协同路径规划复现:从建模到Matlab仿真全解析

路径规划是机器人领域的核心基础技术,从单机避障到多平台协同,问题复杂度显著提升。空地协同规划融合无人机与无人车的异构优势,通过将地图分层建模为空中与地面栅格,并采用A*算法生成初始路径、B样条平滑以及改进遗传算法进行任务分配与时间同步优化,能够有效处理几何约束、运动学约束和避碰约束等。该技术广泛应用于区域巡逻、目标搜索、物资转运等任务场景,也是高校论文复现和工程仿真的常见课题。本文从问题建模、算法设计到Matlab代码结构,系统梳理了一套空地多无人平台协同路径规划的复现思路,同时给出坐标系校准、遗传算法收敛

weixin_32175665的博客 248

命令行驱动视频剪辑:cutcli与AI自动化工作流实战

在视频内容创作领域,自动化与批量化处理是提升生产效率的关键。传统图形界面工具在应对重复性任务时往往效率低下,而通过命令行接口(CLI)驱动视频生成,则能实现流程的程序化控制。其技术原理在于将视频结构抽象为可编程的指令序列,通过解析命令生成标准化的工程文件。这种模式的核心价值在于将视频制作从手动操作转变为代码驱动,特别适合与AI编程助手集成,实现自然语言到视频草稿的自动转换。应用场景广泛覆盖社交媒体内容批量生产、教育视频自动化生成、数据可视化视频组装等领域。本文以cutcli工具为例,深入解析如何通过命令行与

weixin_42520239的博客 569

Python中单下划线,双下划线,俩头下划线的区别。

示例>>> class student(object): __name = 0 _sex = 'male' >>> student.__dict__ mappingproxy({'__module__': '__main__', '_student__name': 0, '_sex': 'male', '__dict__': <attribute '__dict__' of

笑洁 2605

Unity中语法糖带来的GC问题 ——那些看起来优雅、实际上在背后偷偷生垃圾的代码

*语法糖(Syntactic Sugar)**指的是编程语言中为了让代码更简洁、易读而提供的简便写法。比如C#中的foreachlambda表达式LINQ自动属性等。语法糖本身不是坏事,但在Unity等对GC敏感的环境下,要警惕语法糖带来的隐式内存分配。合理使用语法糖,关键场合用更“丑陋”但高效的写法,才能保证游戏流畅运行。下面我将更深入地分析Unity中语法糖导致GC的原理、具体场景、检测与优化技巧,并补充一些容易忽视的细节。

本博客聚焦游戏开发技巧、创业实战心得及大学热门课程干货。这里既有技术深度,也有思维广度,无论你是开发者、创业者还是高校学子,都能在这里找到适合自己的成长之路! 517

Python 用下划线作为变量前缀和后缀指定特殊变量

_xxx   :保护变量,意思是只有类对象和子类对象能够访问到这些变量(尽量避免在类外部直接修改)__xxx__ :系统定义名字__xxx  :类中的私有变量名核心风格:避免用下划线作为变量名的开始。因为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是“私有 的”,在模块或类外不可以使用(是可以使用的,但是一般不...

qq_42169668的博客 768

Xilinx FPGA平台DDR3设计保姆式教程(3)MIG IP核使用教程及DDR读写时序

干货来了,用DDR搬砖,只需要会用IP就好,Xilinx官方YYDS! ----------------------------------------------------------------------------------------------------------------- 汇总篇: Xilinx平台DDR3设计保姆式教程(汇总篇)——看这一篇就够了 ----------------------------------------------------------...

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 2万+

手把手教你学PCIE--所有 PF(Physical Function)共同管理和分配 VF

但具体如何分配和使用 VF 取决于硬件设计、驱动程序配置以及实际应用场景。

MHD0815的博客 1462

python下划线变量的含义

"单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和子类对象自己能访问到这些变量; "双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

xuzhenbao666的博客 502

四足狗机器人硬件开发技术栈详解

本文系统介绍了四足狗机器人的硬件开发技术,重点分析了五大核心模块:机械结构(骨架设计)、动力系统(关节驱动)、感知系统(环境监测)、控制系统(决策中枢)和电源系统(能源管理)。文章详细阐述了各模块的选型标准、技术要点和协同设计原则,提供了从需求定位到组装调试的完整开发流程,并针对常见问题给出解决方案。随着材料轻量化、模块标准化和AI集成化的发展趋势,四足机器人硬件将向更灵活、更智能的方向演进,为工业巡检、应急救援等场景提供更强大的移动平台支持。

start_up_go的博客 284

python中的private、下划线、类变量

python中的private、下划线、类变量 1. python中没有private、protected,但是有个惯例 官方文档是这么写的: 9.6. Private Variables and Class-local References “Private” instance variables that cannot be accessed except from ...

BetterWorld的专栏 1500

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

python双划线_Python中的单下划线和双下划线使用场景详解

python 变量单下划线和双下划线的区别小编拼了命好好学习是为了能站在领奖台上大大方方的看你。_xxx 不能用于’from module import *’ 以单下划线开头的表示的是protected类型的变量。 即保护类型只能允许其本身与子类进行访问。 小编最喜欢你说话时的笑容暖暖的模样像此刻世界最柔暖的光。__xxx 双下划线的表示的是私有类型的变量。只能是允许这个类本身进行访问了。连子类也...

weixin_39611722的博客 186

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Python私有变量的定义方法

学过编程语言的人员,都知道私有变量在编程中必不可少,与Java和C语言用private关键字定义私有变量不同,Python是在变量前面加上双横杠(例如:__test)来标识,Python私有变量只能在类内部使用,不被外部调用,且当变量被标记为私有后,调用时需再变量的前端插入类名,在类名前添加一个下划线,即“_ClassName__变量名”形式。Python私有变量或方法在自身...

weixin_34100227的博客 695

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

python中单下划线和双下划线有什么区别

在python类中,我们经常可以看到类似于_object,__object,__object__的对象,那么这些有什么区别呢? 单下划线 表示类中的保护变量,它在类外不可访问,在类和子类中可以访问,类似于C++中的保护继承,如果非要在类外访问时,_类名__对象名即可。 双下划线 表示类中的私有成员,只能在本类中访问,Python设计此的真正目的仅仅是为了避免子类覆盖父类的方法。类似与C++中的pr...

qq_42199781的博客 298

Python class类的头尾下划线__xy__、两个下划线__x、一个下划线_y的简单区别

类属性与方法 类的方法 在类的内部,使用def关键字定义方法,与一般函数定义不同,类方法必须包含参数 self,且为第一个参数 类的私有方法 __private:两个下划线开头声明的方法为私有方法,不能在类地外部调用。在类的内部调用self.__private。 __private:两个下划线开头声明的属性为私有属性,不能在类的外部被使用或直接访问。在类内部的方法中使用时self._...

songlh1234的博客 1851

python 类的属性与方法_python 类属性与方法

Python 类属性与方法标签(空格分隔): PythonPython的访问限制Python支持面向对象,其对属性的权限控制通过属性名来实现,如果一个属性有双下划线开头(__),该属性就无法被外部访问。class Person:def __init__(self, name, age, sex):self.name = nameself._age = ageself.__sex = sexdef ...

weixin_39900531的博客 153

Python 中的下划线命名规则

目录 1 变量 1.1 _xxx 1.2 __xxx 1.3 __xxx__ 1.4 xxx_ 1.5 2 函数和方法 2.1 受保护方法:小写和一个前导下划线 2.2 特殊方法:小写和两个前导下划线,两个后置下划线 3. 类 4. 模块和包 5.参考文献 如何定义python中变量名,函数名,类名以及包名 1 变量 1.1 _xxx 单下划线开头的变量,表明这是一...

anshuai_aw1的博客 1741

python类的成员变量_python类变量与成员变量

类变量与成员变量关注公众号“轻松学编程”了解更多。​ 在类中声明的变量我们称之为类变量【静态成员变量】,在__init__()函数中声明的变量并且绑定在实例上的变量我们称之为成员变量。类变量直接可以通过类名来调用。1、若类变量与成员同时存在并且同名使用对象来调用的时候,获取的结果是成员变量的值,使用类名来调用,获取的是类变量的值。2、若类变量存在,成员变量不存在,使用对象来调用的时候,它首先寻找成...

weixin_39850152的博客 659

python单下划线加数字_python 单下划线/双下划线使用总结

https://www.cnblogs.com/hester/articles/4936603.htmlPython 用下划线作为变量前缀和后缀指定特殊变量/方法。主要存在四种情形object # public__object__ # special, python system use, user should not define like it__object # private (name...

weixin_39631632的博客 146

python中_与__的区别

1.单下划线(伪私有,声明私有) 伪私有变量:变量前的单下划线表示表面上私有 ,但是其实这样的实例变量外部是可以访问的,只是一种约定,不要随意访问。 2.双下划线(变量或方法) 变量前的双下划线表示真正的私有,实际上的私有,只有内部可以访问,但是可以通过在类中自定义方法进行操作 >>> class MyName: ... _name = "w1" ... __namedede = "w2" ... >>> print(MyName._name) w1 &

pygodnet的博客 1169

Python - Pythonic下划线

Python的面向对象没有严格的定义私有,公有,保护;但是有一定的命名风格来显示当前成员变量,成员函数的属性。 先挖坑 参考文献 http://www.cnblogs.com/wanpython/archive/2013/05/23/3095534.html http://www.cnblogs.com/wangshuyi/p/6096362.html

呵呵 655
上一篇: Python_类对象、实例对象、类属性、实例属性、类方法、实例方法
下一篇: Python_上下文管理器
bug捕手
博客等级 码龄4年 899粉丝 417原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值