13私有化属性的一些注意点

目录

一、解释一下几个私有化访问的方式!!!

1.类内部访问:

2.子类访问

3.模块内其他位置访问

4.跨模块访问

二、_y受保护属性的访问

只有跨模块这块需要注意一下!

这个是可以访问的

但是下面这个是不可以的

但是在原始模块内部如果加入了__all__=['~~~~~~']就可以啦!

三、最后一个就是__z两根下划线的 私有变量访问

1、类的内部可以进行访问

2、子类不可以进行访问

3、模块内其他部分进行访问【不行】

​编辑4、跨模块访问和一根线的一样import可以,from   import不可以


一个很好的图 关注一下

一、解释一下几个私有化访问的方式!!!

1.类内部访问:

class Animal:x = 10def test(self):print(Animal.x)print(self.x)pass
#测试代码
a =Animal()
# a.test()

2.子类访问

class Animal:x = 10def test(self):print(Animal.x)print(self.x)pass
class Dog(Animal):def test2(self):print(Dog.x)print(self.x)pass
d = Dog()
d.test2()

3.模块内其他位置访问

class Animal:x = 10def test(self):print(Animal.x)print(self.x)pass
class Dog(Animal):def test2(self):print(Dog.x)print(self.x)pass
#测试代码
a =Animal()
# a.test()d = Dog()
#d.test2()
print(Animal)
print(Dog)
print(a.x)
print(d.x)

4.跨模块访问

import 类对象的创建方式
print(类对象的创建方式.x)from 类对象的创建方式 import *
print(x)

二、_y受保护属性的访问

其它都和上面一样就不过多赘述了

class Animal:_x = 10def test(self):print(Animal._x)print(self._x)
a = Animal()
# a.test()
class Dog(Animal):def test(self):print(Dog._x)print(self._x)pass
d = Dog()
d.test()

只有跨模块这块需要注意一下!

这个是可以访问的

import 类对象的创建方式
print(类对象的创建方式._a)

但是下面这个是不可以的

from 类对象的创建方式 import *
print(_a)

但是在原始模块内部如果加入了__all__=['~~~~~~']就可以啦!

__all__=['_a']
_a =666

三、最后一个就是__z两根下划线的 私有变量访问

1、类的内部可以进行访问

class Person:def __init__(self):self.__age = 18def setAge(self,value):self.__age = valuedef getAge(self):return self.__age
p1 = Person()
p1.__age = -10
print(p1.__age)
class Animal:__x = 10def test(self):print(Animal.__x)print(self.__x)pass
class Dog(Animal):def test2(self):print(Dog.__x)print(self.__x)pass
p1 = Animal()
p1.test()

2、子类不可以进行访问

class Animal:__x = 10def test(self):print(Animal.__x)print(self.__x)pass
class Dog(Animal):def test2(self):print(Dog.__x)print(self.__x)pass
# p1 = Animal()
# p1.test()p2 = Dog()
p2.test2()

3、模块内其他部分进行访问【不行】

class Animal:__x = 10def test(self):print(Animal.__x)print(self.__x)pass
class Dog(Animal):def test2(self):print(Dog.__x)print(self.__x)pass
p1 = Animal()
# p1.test()p2 = Dog()
# p2.test2()print(Animal.__x)
print(Dog.__x)
print(p1.__x)
print(p2.__x)

4、跨模块访问和一根线的一样import可以,from   import不可以

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/102120.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python皮卡丘

系列文章 序号文章目录直达链接1浪漫520表白代码https://want595.blog.csdn.net/article/details/1306668812满屏表白代码https://want595.blog.csdn.net/article/details/1297945183跳动的爱心https://want595.blog.csdn.net/article/details/1295031234漂浮爱心https://want…

Element UI怎么安装呢?

安装 :::warning 注意 后续演示将会在 Vue CLI 搭建的 Vue 项目上进行操作。如需要请查看 Vue CLI 安装 ::: 通过 YARN 命令安装 $ yarn add element-ui完整引入 代表一次性引入所有组件,比较省心省事,但是项目的打包体积也会跟着变大。 // main.js…

3.简单场景构建

在新建的项目中,默认存在 Main Camera 和 Directional Light两个对象。若是缺失,可通过选择菜单中的 Game Object->Camera 和 Geme Object->Light->Directional Light进行创建。 1.添加地形及底图 通过在Cesium面板中选择 Cesium World Terrai…

VAE模型(详细推导+实例代码)

文章目录 EM算法思路E步M步直观感觉 GMM模型VAEVAE思想从GMM到VAE公式推导重参数VAE神经网络另一个视角的VAE思想为什么引入encoder为什么要重参数噪声与重建 Discrete VAE 本文会从EM算法,GMM模型一步一步的的推导,在过渡到VAE模型,如果有熟…

Excel·VBA使用ADO合并工作簿

之前文章《ExcelVBA合并工作簿(7,合并子文件夹同名工作簿中同名工作表,纵向汇总数据)》处理合并工作簿问题,代码运行速度比较慢 而《ExcelVBA使用ADO读取工作簿工作表数据》读取数据非常快,那么是否可以使用…

1200*C1. k-LCM (easy version)(找规律)

Problem - 1497C1 - Codeforces 解析: 找规律即可,分为偶数的一半是偶数、偶数的一半是奇数、奇数三种情况 分别为 (n/2,n/4,n/4)(n/2-1,n/2-1,2)&#xff08…

常见算法-双骰子游戏(Craps)

常见算法-双骰子游戏(Craps) 1、说明 一个简单的双骰子游戏,游戏规则如下: 玩家掷两个骰子,点数为1到6, 如果第一次点数和为7或11,则玩家胜,如果点数和为2、3或12,则…

Nlopt在matlab中的配置教程

step1:克隆代码并编译 编译的前提是已经安装好MinGW64 # 使用镜像加速 git clone https://gitclone.com/github.com/stevengj/nloptcd nlopt mkdir build cd build cmake -G"MinGW Makefiles" .. cmake --build .# 注意此处博主在mingw安装目录将mingw3…

windows10下 iperf3测试带宽

iperf3下载网址:iPerf - Download iPerf3 and original iPerf pre-compiled binaries 可以用来测试TCP以及UDP带宽质量 通俗来说是用来测试网速的 准备:两台设备 1. 根据自己的设备选择下载工具(两台都要有,这里我用的Window…

vue实现瀑布流

1、在 src 目录下创建 component文件夹&#xff0c;在文件夹中创建 vue文件。 2、在 Vue文件中写入以下内容 <div class"pubu"><div class"left"><div class"pubu-item" v-for"item in left" :key"item.id"…

react antd table表格点击一行选中数据的方法

一、前言 antd的table&#xff0c;默认是点击左边的单选/复选按钮&#xff0c;才能选中一行数据&#xff1b; 现在想实现点击右边的部分&#xff0c;也可以触发操作选中这行数据。 可以使用onRow实现&#xff0c;样例如下。 二、代码 1.表格样式部分 //表格table样式部分{…

JVM面试题:(三)GC和垃圾回收算法

GC: 垃圾回收算法&#xff1a; GC最基础的算法有三种&#xff1a; 标记 -清除算法、复制算法、标记-压缩算法&#xff0c;我们常用的垃圾回收器一般 都采用分代收集算法。 标记 -清除算法&#xff0c;“标记-清除”&#xff08;Mark-Sweep&#xff09;算法&#xff0c;如它的…

canvas基础2 -- 形状

七巧板 七巧板本质上就是 分别由几个直线 拼成一个个图形&#xff0c;再将这些图形结合起来 var tangram [{ p: [{ x: 0, y: 0 }, { x: 800, y: 0 }, { x: 400, y: 400 }], color: "#caff67" },{ p: [{ x: 0, y: 0 }, { x: 400, y: 400 }, { x: 0, y: 800 }], col…

Maven下载与文件配置

文章目录 官网下载相应文件修改配置文件设置环境变量 官网下载相应文件 https://maven.apache.org/ 点击Download ,找到Files 下载好了&#xff0c;请解压&#xff0c;放在你需要存储的位置&#xff01; 修改配置文件 打开解压的文件&#xff1a; 在conf 下有一个setting…

vscode远程ssh服务器且更改服务器别名

目录 1、打开VS Code并确保已安装"Remote - SSH"扩展。如果尚未安装&#xff0c;请在扩展市场中搜索并安装它。 2、单击左下角的"Remote Explorer"图标&#xff0c;打开远程资源管理器。 3、在远程资源管理器中&#xff0c;单击右上角的齿轮图标&#x…

基于VCO的OTA稳定性分析的零交叉时差模型研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

因子分析(SPSS和Python)

一、源数据 二、SPSS因子分析 2.1.导入数据 2.2.标准化处理 由于指标的量纲不同&#xff08;单位不一致&#xff09;&#xff0c;因此&#xff0c;需要对数据进行标准化处理 2.3.因子分析 点击“确定”后&#xff0c;再回到“总方差解释”表格&#xff0c;以“旋转载荷平方和…

点向行列连边的网络流图优化成行列连边的二分图:CF1592F2

https://www.luogu.com.cn/problem/CF1592F2 做完F1&#xff0c;然后用1的结论来思考。 场上推了几个性质。首先op4的操作行列必然两两不同&#xff0c;所以op4最多 max ⁡ ( n , m ) \max(n,m) max(n,m) 次。然后手玩发现只有除 ( n , m ) (n,m) (n,m) 的三个格子都为1&am…

发稿渠道和发布新闻的步骤和技巧,收藏!

在现代社会中&#xff0c;新闻的发布和传播起着至关重要的作用。通过新闻&#xff0c;人们可以获取及时的信息&#xff0c;了解社会动态和事件发展。而对于企业和组织来说&#xff0c;通过新闻发布可以宣传品牌、推广产品&#xff0c;增加曝光度&#xff0c;吸引目标受众的关注…

安卓-APP启动优化技术方案汇总

应用有三种启动状态&#xff1a;冷启动、温启动或热启动。每种状态都会影响应用向用户显示所需的时间。在冷启动中&#xff0c;应用从头开始启动。在另外两种状态中&#xff0c;系统需要将后台运行的应用带入前台。 我们建议您始终在假定冷启动的基础上进行优化。这样做也可以…