您的位置: 网站首页> python面向对象> 当前文章

单下划线变量和方法-单前导下划线

老董-我爱我家房产SEO2021-09-26188围观,143赞

  在python中还有一种单下划线开头的变量(单前导下划线),无论是在类外部还是类内部,以单下划线开头的变量是一种指定变量私有的一种约定,他只是来表达不想被使用,并不是完全在功能上的限制

  1、类外部的单下划线变量和方法的访问特点

  1)使用from module import * 进行导入,不能导入私有变量,但是在被导入的py文件中使用__all__单独声明了可导入内容时,可以正常导入。

  2)使用import module导入模块可以导入并使用私有属性和方法

  我们有1个A.py模块,内容如下:

class A:
    def __init__(self):
        self.text = "A"

class _B:
    def __init__(self):
        self.text = "B

  如果我们的脚本中如此写代码会报错

from A import *
a = A()
print(a.__dict__)

b = _B()
print(b.__dict__) # 报错_B is not defined

  如果脚本中按照如下方式则是正确的

import A
a = A.A()
print(a.__dict__)

b = A._B()
print(b.__dict__)

  2、类内部的单下划线变量和方法可以在外界访问

# -*- coding:utf-8 -*-

class Person:
    def __init__(self,name,age):
        self.name = name
        self._age = age

    def _change(self,body):
        print(f'整容{body}')


class Girl(Person):
    def __init__(self,name,age,cost):
        super().__init__(name,age)
        self._cost = cost


if __name__ == "__main__":
    g = Girl('小龙女',18,1000)
    g._change('脸')
    print(g._cost)

整容脸
1000

很赞哦!

python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群 python学习会

文章评论

    单下划线变量和方法-单前导下划线文章写得不错,值得赞赏

站点信息

  • 网站程序:Laravel
  • 客服微信:a772483200