私有化(xx,_x,__xx,__xx__,xx_)
- xx: 公有变量
- _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问
- __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到)
- xx:双前后下划线,用户名字空间的魔法对象或属性。例如:init , __ 不要自己发明这样的名字
- xx_:单后置下划线,用于避免与Python关键词的冲突
#coding=utf-8class Person(object):def __init__(self, name, age, taste):self.name = nameself._age = age self.__taste = tastedef showperson(self):print(self.name)print(self._age)print(self.__taste)def dowork(self):self._work()self.__away()def _work(self):print('my _work')def __away(self):print('my __away')class Student(Person):def construction(self, name, age, taste):self.name = nameself._age = age self.__taste = tastedef showstudent(self):print(self.name)print(self._age)print(self.__taste)@staticmethoddef testbug():_Bug.showbug()# 模块内可以访问,当from cur_module import *时,不导入
class _Bug(object):@staticmethoddef showbug():print("showbug")s1 = Student('jack', 25, 'football')
s1.showperson()
print('*'*20)# 无法访问__taste,导致报错
# s1.showstudent()
s1.construction('rose', 30, 'basketball')
s1.showperson()
print('*'*20)s1.showstudent()
print('*'*20)Student.testbug()
总结:
- 父类中属性名为__名字的,子类不继承,子类不能访问
- 如果在子类中向__名字赋值,那么会在子类中定义的一个与父类相同名字的属性
- _名的变量、函数、类在使用from xxx import *时都不会被导入
私有化(xx,_x,__xx,__xx__,xx_)相关推荐
- Python私有化与poperty方法
1.私有化 xx: 公有变量 _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突 ...
- python提高——类(私有化,封装、继承、多态)
目录 1私有化 2import导入 import搜索路径 3封装 4继承 5多态 1私有化 xx: 公有变量 x: 单前置下划线,私有化属性或方法,from somemodule import *禁止 ...
- python语言的理解-Python动态语言理解
1. 动态语言的定义 动态编程语言 是 高级程序设计语言 的一个类别,在计算机科学领域已被广泛应用.它是一类 在运行时可以改变其结构的语言 :例如新的函数.对象.甚至代码可以被引进,已有的函数可以被删 ...
- Python基础提高
什么是GIL?GIL对多线程的影响 GIL全称Global Interpreter Lock(全局解释器锁).GIL和Python语言没有任何关系,只是因为历史原因导致在官方推荐的解释器Cpython ...
- Python全栈编程
王铭东-知识库-it项目网 (itprojects.cn) (一)基础知识 一.变量 变量定义:是一个存储数据的容器. 变量特性: 1️⃣引用着某个具体数值: 2️⃣并且可以 改变这个引用. 变量由三 ...
- python为什么是蟒蛇_Python 为什么推荐蛇形命名法?
关于变量的命名,这又是一个容易引发程序员论战的话题.如何命名才能更具有可读性.易写性与明义性呢?众说纷纭. 本期"Python为什么"栏目,我们将聚焦于变量命名中的连接方式,来切入 ...
- python的标志为什么是蛇_Python 为什么推荐蛇形命名法原因浅析
关于变量的命名,这又是一个容易引发程序员论战的话题.如何命名才能更具有可读性.易写性与明义性呢?众说纷纭. 本期"Python为什么"栏目,我们将聚焦于变量命名中的连接方式,来切入 ...
- python驼峰命名法_蛇形命名,驼峰命名,你的选择?
关于今天要讲的,小编想想还有点小激动.那就是关于变量的命名,这个一直都是容易引起程序员论战的话题.如何命名才更具可读性.易写性以及明义性? 程序命名常使用的是英文单词,当他们被作为变量名时,有全小写. ...
- 深入浅出python机器学习_7.1_支持向量机
%matplotlib inline# 支持向量机SVM的核函数import numpy as npimport matplotlib.pyplot as pltfrom sklearn import ...
- PHP获取字符串的所有子集,PHP Regexp(PCRE)-查找所有子字符串的集合
我有以下字符串,例如: aaXXccYYeeXX_ZZkkYYmmXX_ZZnnXXooYYuuXX_ZZvv 如何在字符串中找到所有XX.* YY.* ZZ部分? (可能通过使用preg_match ...
最新文章
- 通俗理解卡尔曼滤波及其算法实现(实例解析)
- 网站关键词优化如何控制其密度?
- 数据结构(五)堆排序
- Python编程基础17:构造方法和析构方法
- Apache创建虚拟目录绑定域名
- BAT会看上哪样的中小公司程序员? 1
- 弱电工程施工规划实施
- 少儿编程之Scratch入门汇总篇
- linux下检测USB的热插拨
- 基于易语言的键盘监听器(仅供学习)
- 问题解决“Windows Installer 程序包有问题,此安装需要的程序不能运行。请与您的支持人员或程序包开发商联系”
- Android 音视频开发(三) -- Camera2 实现预览、拍照功能
- Unity5场景应该如何烘焙?
- 机器人行走背后的机械原理动画,一文看透
- 魔兽世界任务制作教学,已经本人自己服务器中测试
- win10右下角声音符号红叉提示解决未安装任何音频输出设备
- java校园共享单车管理系统
- 给桌面装个会动的地球
- 有C++基础如何直接上手QT?
- 进销存仓库管理的意义