美文网首页python
python中几种常见又容易忽视的概念详解

python中几种常见又容易忽视的概念详解

作者: 软件开发技术修炼 | 来源:发表于2022-04-21 18:02 被阅读0次

    平时使用python,经常会使用到的知识点,可能懂得知道如何使用,但又没有全面的了解,下面总结下

    一、if name == main作用

    1】python中所有的模块都有一个内置name,这个属性值取决于如何应用这个模块;
    2】把一个模块当程序运行,如cmd中运行py文件,则name的值为默认缺省值main
    3】在项目程序中,可单独运行某一个py文件
    if name == main: #来判断是否是直接运行的.py文件
    main()

    二、包中的init.py文件作用

    毋庸置疑,最基本就是体现,文件夹与包的区别,不可删除;此外还有2点

    1】做包与模块的初始化的工作;

    2】进行批量导入包与模块
    from Root.Pack1 import *
    模糊导入的*指代的包是由init文件中的all控制的,也就是必须package才能使用模糊导入

    3】 可以编写Python代码
    (但不建议在init中写代码,尽量保证init.py简单)

    三、各种下划线的理解

    我们在定义一些变量与方法时,经常会用到下划线_ ,各种下划线_用处是怎样?

    1】××× 开头与结尾两个下划线,系统定义名字

    比如初始化方法 init;还有如下这些,内置好的魔法函数

    魔法函数
    2】__××× 开头两个下划线, 类中的私有变量名,

    用于类的继承,防止被子类重写,类的对象和类的子类对象也不能访问

    class Person():
        def __init__(self):
            self.name = "polo"
            self.__age = 18
    
    po = Person()
    print(po.name)
    print(po.__age)
    print(po.__dir__())  # 查看这个对象的属性,name不变,__age变成_Person__age
    
    
    结果
    3】_××× 开头一个下划线

    1)python中,_ 是有值的,指向最后一次执行的表达式
    2)定义变量与方法,成为保护变量,只有类的对象和类的子类对象能访问,不能通过import module from * 导入

    def my_func():
      print("a123")
    
    def _my_func():
      print("a12345")
    
    #引用这个模块,分别执行模块中的方法
    from test import *
    my_func()
    #结果:a123
    _my_func()
    #结果:报错
    
    此例子说明了_ 一个下划线与 __ 两个下划线的区别:

    只有类的对象和类的子类对象能访问

    #文件test_under.py中定义类
    
    class Test:
        def __init__(self):
            self.name = 'lily'
            self._pwd = 'a123'   # 约定私有化
            # self.__name = name   # 将__两个下划线开头的属性进行自动转换变成_类名__属性名的形式
    
        def say(self):
            print(self.name)
    
        def _mm(self):
            print(self._pwd)
    
    # 实例一个对象,访问两个属性和两个方法
    import test_under
    Na = test_under.Test()
    Na.name
    Na._pwd
    Na.say()
    Na._mm()
    #结果
    'lily'
    'a123'
    'lily'
    'a123'
    
    4】×××_ 尾部下划线

    为了区分python关键词如def class name pass,在它们的后面添加一个下划线,一般不建议

    相关文章

      网友评论

        本文标题:python中几种常见又容易忽视的概念详解

        本文链接:https://www.haomeiwen.com/subject/xlxwertx.html