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…

信息化工程测试验收管理制度

1、总则 1.1、目的 为规范XXXXX单位的信息系统建设和工程项目测试验收准则,特制订本管理制度。 1.2、范围 本制度适用于XXXXX单位工程测试验收管理。 1.3、职责 信息系统建设和其他信息系统工程类项目的测试和验收主要由项目负责人负责,必要的时候…

Ai图像绘制模型训练以及应用

Ai图像绘制模型训练以及应用 前言 人工智能(Artificial Intelligence,AI)作为当前IT领域最受关注的热门话题之一,已经应用于各个领域,包括医疗保健、金融、交通和制造业等。其中,图像识别和处理是人工智能…

【数据结构与算法】三种简单排序算法,包括冒泡排序、选择排序、插入排序算法

冒泡排序算法 冒泡排序他是通过双重循环对每一个值进行比较&#xff0c;将小的值向后移动&#xff0c;以达到最终排序的结果&#xff0c;他的时间复杂度为O(n^2)。 /*** 冒泡排序* param arr*/public static void bubbleSort(int[] arr){int l arr.length;for (int i 0; i <…

Element UI怎么安装呢?

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

3.简单场景构建

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

[Spring] Springmvc执行流程

介绍 SpringMVC是一种基于Spring实现了Web MVC设计模式的请求驱动类型的轻量级Web框架&#xff0c;使用了MVC的架构模式思想&#xff0c;将Web层进行指责解耦&#xff0c;并管理应用所需的生命周期&#xff0c;为简化日常开发&#xff0c;提供了很大便利。 组件 组件Dispatche…

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

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

Excel·VBA使用ADO合并工作簿

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

车辆调度算法

参考资料 有什么车辆调度算法的最新研究&#xff0c;比如用强化学习的方法&#xff1f; https://www.zhihu.com/question/312332312 策略算法工程师之路-图优化算法(一)(二分图&最小费用最大流) https://zhuanlan.zhihu.com/p/103825713 模拟退火&#xff08;SA&#xf…

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

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

多线程并发篇---第六篇

系列文章目录 文章目录 系列文章目录一、说一说自己对于 synchronized 关键字的了解二、说说自己是怎么使用 synchronized 关键字?三、什么是线程安全?Vector是一个线程安全类吗?一、说一说自己对于 synchronized 关键字的了解 synchronized关键字解决的是多个线程之间访问…

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

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

Nlopt在matlab中的配置教程

step1&#xff1a;克隆代码并编译 编译的前提是已经安装好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下载网址&#xff1a;iPerf - Download iPerf3 and original iPerf pre-compiled binaries 可以用来测试TCP以及UDP带宽质量 通俗来说是用来测试网速的 准备&#xff1a;两台设备 1. 根据自己的设备选择下载工具&#xff08;两台都要有&#xff0c;这里我用的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;如它的…

右值引用, 完美转发, 万能引用, lambda表达式, 包装器 用法

右值引用&#xff0c;完美转发&#xff0c;万能引用 用法 //链表节点 template <typename T> struct __list_node {//1. __list_node(const T& val T()):_prev(nullptr), _next(nullptr), _val(val){}__list_node(T&& val):_prev(nullptr), _next(nullptr)…

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…