python里面单双下划线的区别

这篇具有很好参考价值的文章主要介绍了python里面单双下划线的区别。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

区别:

xx:公有变量,所有对象都可以访问;

xxx:双下划线代表着是系统定义的名字。
__xxx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问。代表着类中的私有变量名。
_xxx:单前置下划线,私有化属性和方法,类对象和子类可以访问。不能用“from module import *”导入。
xx_:单后置下划线,用于避免与python关键字的冲突。

Python中存在一些特殊的方法,有些方法以双下划线 “__” 开头和结尾,它们是Python的魔法函数,比如__init__()和__str__等等。不用要这种方式命名自己的变量或者函数。
示例代码:

class Test(object):
    def __init__(self, text):
        self.text = text
 
    def __str__(self):
        return self.text
 
 
text = input("Please input text:")
obj = Test(text)
print(obj)

运行结果:

python里面单双下划线的区别
在前面加上“__”,表示它是私有成员,我们不能直接访问。比如 “__xxx” 如果要访问得通过 _class__xxx 的方式进行访问。虽然不能防止修改私有属性,但可以有效降低有意或者无意的修改。

示例代码:

class Test(object):
    def __init__(self, text):
        self.__text = text
        self.__text2 = text
 
    def func(self):
        print(self.__text)
 
    def __str__(self):
        return self.__text
 
 
text = input("Please input text:")
obj = Test(text)
print(obj)
obj.func()
#  print(obj.__text)  # 报错
print(obj._Test__text)
print(dir(obj))

运行效果:

python里面单双下划线的区别
从图中可以看到双下划线开头的变量,Python自动在前面加上了 “_class” 的前缀,所以我们访问时也要加上相应的前缀才能正常访问。

_xxx:一种约定,用来指定变量私有。程序员用来指定私有变量的一种方式。不能用from module import * 导入,其他方面和公有一样访问。

示例代码:

#  test.py
class Test1(object):
    def __init__(self):
        self.text = "my is text!"
 
    def __str__(self):
        return self.text
 
 
class _Test2(object):
    def __init__(self):
        self.text = "my is text2!"
 
    def __str__(self):
        return self.text
 
 
if __name__ == '__main__':
    obj1 = Test1()
    obj2 = _Test2()
    print(obj1)
    print(obj2)

python里面单双下划线的区别
可以通过别的方式访问这个类,修改我们的test2.py文件为以下内容。

#  test2.py
import test
 
obj1 = test.Test1()
print(obj1)
obj2 = test._Test2()
print(obj2)

除了不能通过 from module import * 这种方式导入外,跟公有类并没有差别。

运行效果:
python里面单双下划线的区别
__sizeof__() : 打印系统分配空间的大小。
示例代码:

class Test(object):
    def __init__(self):
        self.__text = "my is text!"
 
    def func(self):
        print(self.__text)
 
    def __str__(self):
        return self.__text
 
 
obj = Test()
print(obj)
print(dir(obj))
print("*" * 100)
print(obj.func.__sizeof__())
print(obj.func.__sizeof__)
print("*" * 100)
print(obj.func().__sizeof__)
print(obj.func().__sizeof__())

运行结果:

python里面单双下划线的区别
__name__:前面和后面加上下划线代表着是系统定义的名字。普通变量不能使用此方式来命名。__name_表示当前模块执行过程中的名称,如果该模块执行,则__name__的值为__main_,如果模块是被导入的,则__name__的值为被导入的模块的模块名字。

__main__:表示整个工程开始运行的入口。
示例代码:文章来源地址https://www.toymoban.com/news/detail-423070.html

#  test_name.py
def func():
    if __name__ == '__main__':
        print("my name is %s" % __name__)  # my name is __main__
    else:
        print("It's me: %s" % __name__)  # It's me: test_name
 
 
if __name__ == '__main__':
    func()  # my name is __main__
 
#  在其它文件中
#  test_name2.py
import test_name
 
test_name.func()  # It's me: test_name

到了这里,关于python里面单双下划线的区别的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • HTML中设定下划线样式并且指定下划线长度

    今天笔者在写网页导航栏时,想要给链接加一个悬停下划线,写出来如下 HTMl: CSS:(关于其他格式的设定略,只看下划线这一段代码) 这样确实是设定下划线了,但是效果如下,看上去很难看 既然这样,那么该如何改变一下呢? 其实可以使用border-bottom来实现,代码如下

    2024年02月10日
    浏览(40)
  • css 下划线

    在 CSS 中,可以使用 \\\"text-decoration\\\" 属性来设置文本的下划线。例如: 这会使所有的段落文本都带有下划线。你也可以使用 \\\"text-decoration-style\\\" 属性来设置下划线的样式,例如实线、虚线或点线等。 你还可以使用 \\\"border-bottom\\\" 属性来设置下划线,例如: 这会在段落文本下方添加

    2024年02月12日
    浏览(34)
  • css下划线跟随导航

    2024年01月23日
    浏览(39)
  • a标签设置下划线动画

     

    2024年02月07日
    浏览(43)
  • python 面向对象编程的特点 - 封装 - 继承(经典类、新式类) - 多态 - 静态方法、类方法 - 下划线的使用 - 回合制攻击游戏实验

    目录 面向对象编程的特点: 封装:封装是将数据和操作(方法)封装在一个对象中的能力 继承:继承是指一个类(子类)可以继承另一个类(父类)的属性和方法。 我们为什么需要继承呢? 父类/基类 = ATM 子类/派生类= ChinaATM/ICBCATM ATM系统父类子类讲解代码: 经典类和新式

    2024年02月15日
    浏览(49)
  • React Native文本添加下划线

    2024年02月13日
    浏览(38)
  • Java实现驼峰、下划线互转

    Java实现驼峰、下划线互转 1.使用 Guava 实现 先引入相关依赖 1.2 下划线转驼峰 2.自定义代码转 2.1驼峰转下划线 2.2下划线转驼峰

    2024年02月12日
    浏览(42)
  • 电脑下划线在键盘上怎么打出来

    电脑下划线在键盘上怎么打出来, 可能很多人在打字的过程中都不知道如何在键盘上输入下划线的符号,本期内容就和大家详细介绍一些电脑打出下划线的方法吧。 1、电脑大键盘。大键盘区域找到右上角有个 - 线就是中横线,使用shift+- 即可输入下划线。 2、注意下划线输入

    2024年02月07日
    浏览(37)
  • 【CSS】鼠标(移入/移出)平滑(显示/隐藏)下划线

    鼠标移入内容时,下划线从 左 开始绘制到 右 侧结束 鼠标移出内容时,下划线从 左 开始擦除到 右 侧结束 我们给内容添加一个黑色背景 background: #000; 示例 效果 将黑色背景 background: #000; 替换成彩色渐变背景 background: linear-gradient(to right,#ec695c,#61c454); 示例 效果 宽度设置100个

    2024年02月09日
    浏览(53)
  • echarts 饼图 环形图 lable添加下划线

         

    2024年02月09日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包