Python模块是否支持自定义属性使用双下划线开头和结尾?

Python的基础语法 python的一些基本语法的描述和示例 阅读详情

我们知道在Python中,变量名类似__xxx__的,也就是以双下划线开头并且以双下划线结尾的变量和方法,是特殊变量,特殊变量是可以直接访问的,不是私有变量,所以,一般实例变量和类变量以及方法不能用__xxx__这样的方式命名。大家可以参考《第7.8节 Python中隐秘的类封装方法 》对Python中变量封装的描述。

那么如果自己写的文件中直接使用这样的变量会怎么样呢?
经老猿验证测试,Python并没有限制这种命名规则的使用,还是可以正常定义和使用。如图:
在这里插入图片描述
但老猿不建议大家这样使用。

之所以引入这个问题,是老猿最近在进行模块导入测试时对这种命名规则进行测试,由于自己粗心将__f__()调用写成了__f()__结果报错,才开始以为是特殊变量的原因,最后才发现是因为自己写得有问题,只好把写好的博客内容改成这样发布。

老猿Python,跟老猿学Python!
博客地址:https://blog.youkuaiyun.com/LaoYuanPython

请大家多多支持,点赞、评论和加关注!谢谢!

python中那些双下划线开头得函数和变量 以单下划线开头_foo的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用from xxx import *而导入;要重建序列化对象,Python 需要创建一个和被序列化的对象看起来一样的新对象,然后设置新对象的所有属性。方法允许将 color 列为可用属性,对于想使用你的类但却不想深入其内部的人来说,该方法非常有益。“双下划线” 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。如果要创建自己的类,且对象之间的比较有意义,可以使用下面的特殊方法来实现比较。 阅读详情

相关推荐

Python模块中是否允许定义属性名以双下划线开头和结尾?

这是因为Python解释器对双下划线开头且结尾的属性名进行了重命名,将其改变为_类名__属性名的形式,这种方式也称为“名称修饰(name mangling)”。综上所述,虽然Python模块中并不强制要求属性名以双下划线开头和结尾,但是建议不要这样做,以避免名称冲突或者不符合Python约定的命名规范。答案是:Python模块中并不强制要求属性名以双下划线开头和结尾,但是建议不要这样做,因为会引发名称冲突或者不符合Python约定的命名规范。Python模块中是否允许定义属性名以双下划线开头和结尾?

BUG?不存在的! 265

python 特殊变量_python中的特殊变量

类似__xx,以双下划线开头的实例变量名,是一个私有变量(private),只有内部可以访问,外部不能访问;类似__xx__,以双下划线开头,并且以双下划线结尾的,是特殊变量,特殊变量是可以直接访问的,它不是private变量,下面会介绍Python中的常见特殊变量;类似_x,以单下划线开头的实例变量名,这样的变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我...

weixin_39952182的博客 980

Python模块中自定义属性的命名规则

Python模块中的自定义属性命名遵循一般的命名规则,但是双下划线开头和结尾的属性命名具有特殊的含义。但需要注意的是,双下划线开头和结尾的属性并不是绝对的私有属性,仍然可以通过一些方式进行访问和修改。如果需要定义真正的私有属性,可以使用单下划线开头的命名约定,表示这是一个内部属性,不建议直接访问。本文将探讨Python模块中自定义属性的命名规则,特别是双下划线开头和结尾的属性命名。是私有的,因为它以双下划线开头,但并不是绝对的私有属性,仍然可以通过一些方式访问和修改它。在上面的示例中,我们定义了一个名为。

JieLun_C的博客 220

python中以 _ _ 开头和_ _ 结尾的的属性和方法

方法实现了迭代器,用于支持对象的迭代。通过调用这些特殊方法,我们可以实现自定义的行为和功能。,在特定的情况下会自动触发执行。它们可以用来重载操作符、实现迭代器和上下文管理器等功能。这些特殊方法是用于实现对象的特定行为和功能的。在Python中,以双下划线 (_ _)开头和结尾的属性和方法被称为。方法用于获取对象中指定索引位置的元素。例如,当我们尝试将对象转换为字符串时,方法是构造函数,用于初始化对象。方法返回对象的字符串表示方式。的类,并实现了一些特殊方法。方法返回对象的长度,

1110

STM32水质检测小船设计

近年来水资源的监测与保护越来越受到政府部门的重视,抓好源头问题才能做好环境治理,因此建立完善的水环境监测系统是很有必要的。针对当前水环境参数监测中存在的各种问题,例如水质信息采集范围固定、灵活部署监测能力差、信息采集不够智能化、人机交互能力不足等,这些问题导致水环境监测设备不够灵活。 针对上述问题,本文设计了一款基于STM32的水环境监测小船,提出了一种灵活、智能的监测水环境信息的方式。本文将船体作为传感器和控制板的载体,具有可移动性,有利于灵活广泛的采集水环境信息。 本设计选用STM32F103C8T

m0_74026776的博客 1368

ESP32拓展板DIY全攻略:从零打造你的传感器控制中心(附PCB设计文件)

本文详细介绍了如何从零开始DIY ESP32拓展板,打造多功能传感器控制中心。内容涵盖项目规划、硬件设计、PCB布局、制作测试全流程,并提供进阶优化建议和实战案例。特别适合嵌入式硬件爱好者学习ESP32拓展板开发,实现各类传感器的高效集成与控制。

blockchain9miner的博客 1078

Python 中的魔术方法(双下划线开头和结尾的方法)

https://gitbook.cn/books/5ffd564919f81e0b10c9e39f/index.html https://www.cnblogs.com/pyxiaomangshe/p/7927540.html https://rszalski.github.io/magicmethods/ https://www.tutorialsteacher.com/python/magic-methods-in-python

wohu1104的专栏 1032

大模型训练和推理

大模型训练moe是指混合专家(Mixture-of-experts,简称MoE)的,这是一种用于提高大型神经网络性能的技术,它可以将模型的一部分替换为多个专家,每个专家只负责处理一部分输入数据,从而增加模型的参数量和表达能力,同时减少计算量和训练时间。指令可以作为模型的输入的一部分,也可以作为模型的输出的一部分,具体取决于任务的类型。上下文扩展技术的,这是一种用于提高大型语言模型(LLM)对长文本的处理能力的技术,它可以让模型在不增加参数量的情况下,扩展其注意力范围,从而提高模型的语言理解和生成能力。

weixin_45325331的博客 6022

python中各种下划线的含义

_ _xxx :      在C++的类中,有公有、私有、保护的权限之分,但是在py中,语法上没有这样的关键字。但是,有方法可以实现类似的功能。在类的属性(变量)名前加两个下划线。比如self._ _ name,这就是实例的私有属性,在实例外部不能访问。_ _ XXX_ _: 在Python中,变量名类似__xxx__的,也就是以双下划线开头,并且以双下划线结尾的,是特殊变量,可以从外部...

bird333的博客 1624

ctle电路求帮忙分析低中高频调节原理,搭好了电路该怎样调节参数?

🏆本文收录于专栏,主要记录项目实战过程中所遇到的Bug或因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家!持续更新中,up!up!up!!

**My Coding Family** 1129

大模型在电力交易功率预测中的应用:短期,超短期,中长期的完整解决方案代码详解

本文介绍了基于大模型的电力交易功率预测系统,该系统覆盖超短期(15分钟-1小时)、短期(1-6小时)和中长期(1天-1月)三个时间尺度。文章详细阐述了数据准备与特征工程,包括多源数据集成和特征重要性分析。在模型构建方面,采用了Temporal Fusion Transformer (TFT)模型进行超短期预测,Informer模型进行短期预测,以及N-HiTS模型进行中长期预测。此外,文章还探讨了概率预测与风险分析,并介绍了模型部署与交易策略集成的实现。最后,文章总结了系统的贡献,并展望了未来发展方向,如市

专注AI大模型,软件混淆,授权 1264

Python模块学习遇到的问题

Python使用import导入模块时报ValueError: source code string cannot contain null bytes的解决方案 Python使用import导入模块时执行了模块的文件但报ModuleNotFoundError错误的愚蠢问题 Python中import模块时报SyntaxError: (unicode error)‘utf-8’ codec c...

老猿Python 1031

【Unity实战篇 】| 游戏中实现镂空遮罩效果【矩形、圆形镂空遮罩】

本文来写一下怎样在Unity中完成一个 镂空遮罩 的效果。 镂空遮罩 比较常用的有两种:矩形镂空遮罩、圆形镂空遮罩。 镂空遮罩 在游戏中常被当做新手引导必备的内容,可以给玩家更多不一样的体验。 下面就一起来看一下怎样做出这种效果吧!

努力前行,总会成为自己心中的那道光 1万+

python单下划线和双下划线_浅谈python 里面的单下划线与双下划线的区别

在学习Python的时候,很多人都不理解为什么在方法(method)前面会加好几个下划线,有时甚至两边都会加,比如像 __this__ 这种。在我看到上面的文章之前,我一直以为Python中这些下划线的作用就像Golang中方法/函数的大小写一样,或是一些其他语言中的 private 、 public 的作用一样,但仔细深究,这不全是Python这样设计的初衷。下面我们具体分析。主要存在四种命名1...

weixin_31077513的博客 284

YOLOv8有效改进系列及项目实战目录 包含卷积,主干 注意力,检测头等创新机制 以及 各种目标检测分割项目实战案例

大家好!欢迎阅读本专栏。本专栏涵盖了YOLO8中C2f、主干网络、检测头、注意力机制、Neck等多种结构的创新,同时也包括了 YOLO相关的基础知识以及相关项目。

专注于图像领域,主要研究内容包括计算机视觉和深度学习,特别是在图像分类、目标检测和图像生成等方面有深入的研究和实践经验。 3万+

《从零搭建Vue3项目实战》(AI辅助搭建Vue3+ElemntPlus后台管理项目)零基础入门系列第一篇:开发环境准备

vue3入门实战:环境准备篇

感谢阅读 1385

Python中类的特殊方法(双下划线方法)汇总

Python中类的特殊方法(双下划线方法)汇总

网络资源是无限的 2457

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

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

单下划线单下划线用作变量最常见的一种使用场景是作为变量占位符,使用场景明显可以减少代码中多余变量的使用。为了方便理解,_可以看作被丢弃的变量名称,这样做可以让阅读你代码的人知道,这是个不会被使用的变量,e.g.。for _, _, filenames in os.walk(targetDir):print(filenames)for _ in range(100):print('PythonPoi...

weixin_39678426的博客 199

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

python中单竖线是什么意思_python中单下划线_的常见用法总结

这篇文章给大家介绍python中单下划线_,具体内容如下所示:前言我们在阅读源码的时候经常会看到各种单下划线_的使用,所以今天特地做一个总结,而且其实很多(不是所有)关于下划线的使用都是一些约定俗成的惯例,而不是真正对python解释器有影响。0x1存储上一条语句的执行结果在python的解释器中,_是上一条语句的执行结果,最早是CPython施行,到现在其他类型的解释器也在使用0x02作为一个无...

weixin_39601511的博客 1491

jre9下载 jdk9

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

python下划线_下划线(_)在python中的作用

下划线(_)在python中的作用下划线(_)在python中有4种使用场景在交互式解释器中保存最后一个表达式的值指向被忽略的值字面上分割数字赋予属性和方法特性含义接下来,我会逐一介绍这4个作用1. 在交互式解释器中保存最后一个表达式的值>>> a = 5>>> a*315>>> _ * 230>>>在python交互式解释器...

weixin_39593519的博客 817

Python高级编程(二)——单下划线和双下划线

那种仅限从一个对象内部访问的“私有”实例变量在Python中并不存在。大多数Python代码都遵循这样一个约定:带有一个下划线的名称(例如 _spam)应当被视为API的非公有部分(无论它是函数、方法或是数据成员)。这应当被视为一个细节。这样的实例变量外部是可以访问的,但是,按照约定俗成的规定,当你看到这样的变量时,意思就是,“虽然我可以被访问,但是,请把我视为私有变量,不要随意访问”。 如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在Python中,实例的变量名如果以__开头,就变成

weixin_43763859的博客 241

python特殊方法和特殊属性

按官方说法magic method(魔术方法)是special method(特殊方法)的非正式同义词 ——一种由 Python 隐式调用的方法,用来对某个类型执行特定操作例如相加等等。这种方法的名称的首尾都为双下划线。特殊方法官方文档https://docs.python.org/zh-cn/3/reference/datamodel.html#specialnames 以双下划线 __ 包裹起来的方法,比如最常见的 __init__,这些方法被称为魔法方法

cnds123的专栏 836

Python中的双下划线:特殊方法和属性的魔法世界!

特殊方法和属性是Python中强大而灵活的工具,用于自定义类和对象的行为。通过使用这些特殊方法和属性,可以实现自定义的构造函数、字符串表示、比较操作、迭代器等功能。特殊属性则能够访问与类和模块相关的元数据信息。理解并灵活运用这些特殊方法和属性能够更好地定制和控制Python代码,使其适应各种需求和场景。

涛哥聊Python 494

在 Python 中,**双下划线名称改写(Name Mangling)** 是一种用于类中“伪私有”属性的机制

- `__value__`(前后双下划线)→ 不触发 name mangling(是特殊方法/属性,如 `__init__`、`__str__`)。 - 单下划线 `_value` → 约定为“受保护”,不触发改写,仅语义提示。 - 若类名以双下划线开头(如 `__Base`),则 `__value` 在其中仍会被改写为 `_Base__value`;但若类名本身是 `__` 开头且无后缀(极少见),改写行为可能受限(不推荐)。 Python 不提供“真正的私有成员”(即编译器/解释器强制禁止外部访问的机制

[Blog][Domain] programb.blog.youkuaiyun.com 219

python语言命名规则-一文轻松掌握python语言命名规范规则

和C/C++、Java等语言一样,python在命名上也有一套约定俗成的规则,符合规范的命名可以让程序的可读性大大增加,从而使得代码的逻辑性增强,易于自己和其他协作者在以后的拓展中理解代码的意义,从而提高编写代码的效率。我们在平常编写程序的时候需要注意以下几点:一、python变量名命名的硬性规则1.1. 变量名大小写敏感python变量名区分大小写,也就是Student和student在pyth...

weixin_39716160的博客 6516
上一篇: 第9.11节 Python中IO模块文件打开读写操作实例
下一篇: 第1章 Python学习环境构建目录
LaoYuanPython
LaoYuanPython 2020年博客之星Top3 2020年博客之星Top3 领域专家: Python技术领域 领域专家: Python技术领域
博客等级 码龄8年 15万+粉丝 1324原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LaoYuanPython

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值