Python中单下划线和双下划线

本文介绍了Python中单下划线和双下划线在变量和方法命名中的作用,包括临时变量、轻度私有标识、名称改写以及特殊方法的区别,强调了它们在避免命名冲突和定义私有性上的应用场景。
摘要由CSDN通过智能技术生成

在python中,单下划线和双下划线前缀在变量和方法命名中都有特殊的含义,他们被用来指定变量,方法和属性的访问权限以及避免命名冲突。这些约定并不是语言强制的规则

单下划线

  • 作为临时变量:在循环或解包时,用作临时或者不重要的变量。例如“for _ in range(0.100)”或者x,_,y = (1,2,3)
  • 轻度私有指示器:以单下划线开头的变量或者方法(如_variable,_method(self))视为内部实现的一部分,不应该被外部访问。这只是一个预定,Python并不会组织外部访问这样的变量或者方法
  • 在模块导入时使用:当从一个模块中导入*时,以但下划线开头的变量或者方法默认不会被导入,表示他们时模块内部使用的。

双下划线

  • 名称改写:以双下划线开头的变量或者方法(比如__variable,__method(self))会触发python的名称改写机制。Python解释器会将这些名称改写为“_ClassName__variable”的形式从而在继承链中避免命名冲突。这使得变量或者方法像是变得私有的,这虽然这种私有是通过名臣更改写实现的,技术上任然可以i从外部访问他们,但是不推荐这么做
  • 特殊方法:python中有一类特殊用途的方法,这些方法以双下划线开始和技术(如__init__(slef,)call,)这些特殊方法提供了类的构造函数等其他特性。这种用法是被python语言和其标准库识别的,不属于名称改写

区别和应用场景

  • 但下划线主要用于指示变量或方法仅共内部使用。他们并不真正组织外部的访问,而是作为以中约定来表示
  • 双下划线:主要用于在类中避免子类重写服了ide方法,或者为了避免于子类中的命名冲突而自动改写名称。双下划线不应用于特殊方法之外的场景除非你明确需要利用抿成改写的行为。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值