python

当前位置:首页 > python面向对象 > 当前文章

python面向对象

单下划线变量和方法

2021-09-26 145赞 老董笔记
每篇文章努力于解决一个问题!更多精品可移步文章底部。

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

  1、使用from module import * 进行导入,不能导入私有变量

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

  除了上述两者之外,其他方面和公有变量一样访问。

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

# -*- 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

  2、import xxx 和 from xxx import xxx的差别

  我们有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__)

文章评论

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