Python基础学习:怎么实现变量私有化

IAR安装成功的关键:STM32设备支持文件导入方法 IAR安装常卡在设备支持缺失这一步——尤其对STM32新手,没导入对应芯片包,编译直接报错。实测发现,必须通过IAR的Tools→Options→IDE→Configuration→Device Support手动加载STM32设备支持文件,否则新建工程时连芯片型号都选不到。IAR安装是否顺利,往往就差这一步。 阅读详情

Python基础学习:怎么实现变量私有化

1、self__c真正实现了变量私有化

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Author : caodingzheng

'''
    本篇主要讲变量私有化
'''


class Hidden_Variables(object):

    def __init__(self):
        self.a = 1
        self._b = 2
        self.__c = 3

    def one(self):
        print(self.a + self._b + self.__c)
        return self.a + self._b + self.__c

    def get_c(self):
        return self.__c

    def updata_c(self, value):
        self.__c = value
        print('变量c的值已被修改,c的值为%d' % (self.__c))


h = Hidden_Variables()
h.one()
'''
    6
'''
h.a = 2
h.one()
''' 类的变量a被改变,结果为1
    7
'''

j = Hidden_Variables()
j.one()
'''
    6    
'''
print(j._b)
'''值被打印出来
    2
'''
j._b = 10
print(j._b)
j.one()
'''虽然变量被隐藏了,但还是可以被更改
    14
'''

k = Hidden_Variables()
k.one()
'''
    6
'''
# print(k.__c)
'''未能获取到c的值,变量c被私有化隐藏起来
    Traceback (most recent call last):
  File "D:/test/PycharmProjects/untitled/test/hidden_variables.py", line 51, in <module>
    print(k.__c)
AttributeError: 'Hidden_Variables' object has no attribute '__c'
'''
k.__c = 11
print(k.__c)
print(type(k.__c))
'''这个时候k.__c是一个特殊变量,是一个int类型,这里的k.__c是一个整体,k不是实例化的k = Hidden_Variables()
    <class 'int'>
'''
k.one()
'''这个时候我虽然看似给c重新赋了值,但是值未曾生效
    6
'''

l = Hidden_Variables()
l.one()
'''
    6
'''
print(l.get_c())
'''
    3
'''
l.updata_c(20)
'''
    变量c的值已被修改,c的值为20
'''
print(l.get_c())
'''
    20
'''
l.one()
'''
    23
'''
Gitee自动创建PR之——评审模式 一 创建PR的常规操作 本地更新主干(一般为master分支),基于主干新建一个分支并(如Dev分支)切换; 进行新的需求开发; 将这个分支推送到远端; 打开 Gitee ,进入创建 Pull Request 界面; 选定目标分支(及我们需要合并到主干分支的分支,一般即为我们的开发分支); 填写 Title 以及 Description; 点击提交 Pull Request。 二 更快的常见PR的方式— — 评审模式 现在 Gitee. 阅读详情

相关推荐

《UE4游戏开发》之 《查cook资源失败,问题记录》

当项目打包时,cook出错,但是从原始引擎提供的信息中,没有提示具体的那个资源出错,要查到出错资源,还是非常麻烦。 下面就材质cook出错,增加一些日志,方便查找问题做简单记录 材质cook的一个阶段,是收集MaterialShaderMap,如果在这个阶段收集的信息出错,将会在FShaderMapContent::GetOutdatedTypes函数中,因为Shaders指针指向的内存有问题而出错,通过断点发现,FShaderMapContent这个类对象指针为null,而这个类对象的来源于AllMat.

qq_21919621的博客 2580

20190811Python 练习记录

>>> 3>2 True >>> no True SyntaxError: invalid syntax >>> not True False >>> 'adc'.encode('ascii') b'adc' >>> 中文.encode('ascii') Traceback (most recent c...

goldbr的博客 479

Dia 使用说明

简述 在linux上面能找到dia这个工具还是挺幸运的,因为之前画流程图总是使用ubuntu默认的word工具 在里面画图,感觉流程图使用起来麻烦,并且视觉效果真的不好看。 自从使用Dia后,感觉至少画起来流程图会变得越来越标准了。但是Dia也存在问题,就是使用的文档很少,使用中遇到为后,查起来比较费劲,但是至少问题不是很多,所以使用中遇到的几点问题我就记下来,和大家分享,加快大家的开发和文档整理能力。 我会按照遇到的问题来说,不存在使用的先后顺序。 1. Dia 去掉背景中的线条 首先去点那个大一点的蓝色

linan101的博客 4926

Thonny报错:Traceback (most recent call last): File "<pyshell>", line 1, in <module> NameError: name ...

thonny的shell窗口执行python; 提示报错: 实际可以执行部分语句: 经查是由于安装python版本是32位的?,而这个软件是64的,系统也是64的 尝试卸载python;发现安装的是64位的python啊; 从thonny打开系统shell,和自己cmd打开;检查pyhon版本:发现有两个版本,位数可能也不一样: ...

asdasd1752的博客 3万+

强化学习——day16 动态规划算法

动态规划(dynamic programming)是程序设计算法中非常重要的内容,能够高效解决一些经典问题,例如背包问题和最短路径规划。动态规划的基本思想是将待求解问题分解成若干个子问题,先求解子问题,然后从这些子问题的解得到目标问题的解。动态规划会保存已解决的子问题的答案,在求解目标问题的过程中,需要这些子问题答案时就可以直接利用,避免重复计算。本章介绍如何用动态规划的思想来求解在马尔可夫决策过程中的最优策略

想太多的学习日志 1550

Python开发者必看:5分钟搞定Gemini API的3种调用方式(含代码示例)

本文为Python开发者详细介绍了三种高效调用Gemini API的核心方式:基础同步调用、流式调用和聊天模式,并涵盖多模态应用等高级特性。通过清晰的代码示例和实战场景分析,帮助开发者快速掌握Gemini API的集成与优化,提升AI应用开发效率。

g8f9d0s1a2的博客 1121

Python入门(十九)- 异常处理

Python入门第19部分,异常处理。

aalen86的博客 5102

光学系统仿真软件:Finesse_(6).噪声分析与优化

在Finesse中,噪声源的定义可以通过在光学元件的参数中添加噪声项来实现。以下是一个简单的示例,展示了如何在激光器和反射镜中定义噪声源。# 定义噪声传递函数# 绘制噪声传递函数plot NTF1在这个例子中,定义了一个噪声传递函数NTF1,描述了激光器L1到反射镜M1的噪声传递过程。plot NTF1命令绘制了噪声传递函数的频谱图。# 定义耦合路径# 绘制耦合噪声频谱图plot C1在这个例子中,定义了一个耦合路径C1,描述了激光器L1和反射镜M1之间的噪声耦合关系。plot C1。

kkchenjj的博客 873

python常见报错

NameError: 尝试访问一个未申明的变量&gt;&gt;&gt; fooTraceback (most recent call last):  File "&lt;pyshell#0&gt;", line 1, in &lt;module&gt;    fooNameError: name 'foo' is not defined ZeroDivisionError: 除数为零&gt;&gt...

狗子的猫子的博客 1732

把审批体验做成一体化:SAP Business Workflow 里的 Secondary Method、Before Method 与 After Method

摘要:SAP Business Workflow 中,Task 的 Secondary、Before 和 After 三类方法对提升审批体验和可追溯性至关重要。Secondary Method 可自动展示辅助信息(如审批时弹出排班报表),但需注意其独立会话特性;Before Method 适合预处理和审计留痕;After Method 确保收尾动作可靠执行。三类方法按特定顺序调用,且错误不影响主流程。合理使用这些方法能减少事务码切换,增强审计能力,优化用户体验。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 185

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Python学习笔记(32-33)异常与异常处理(附:python 标准异常总结)

学习主题:异常处理 学习日期:2020-02-09 Python 版本:3.7.4 人非圣贤孰能无过。 异常就是错误,可以是程序员操作或者是用户的异常操作导致结果错误。 我们不能强求用户通过专业的角度与习惯去使用。 所以我们在程序中考虑到由于误操作引起的错误,以提高程序的适用性。 第 32讲 python 标准异常总结 完整版请点击https://fishc.com.cn/thread-45...

wind 704

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Python基础教程—私有化

一、私有化 1、定义 (1)私有化 如果想让类的内部属性不被外界直接访问,可以在这个属性的前面加两个下划线__ ,在 Python中,如果一个属性的前面出现 __,就表示这个属性只能在当前类的方法中被直接访问,不能通过对象直接访问,这个变量就被称为私有变量。 __属性: 就是将属性私有化,访问范围仅仅限于类中 (2)封装 私有化属性 定义公有set和get方法 class Student: # __age = 18 类属性 def __init__(self,nam...

weixin_51733734的博客 1640

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

python ——类属性,静态调用,变量私有化

类属性: class Toy(object): count = 0 def __init__(self,name): self.name=name Toy.count +=1 @classmethod def toy_count(cls): print('玩具的数量 %d' %(cls.count)) toy1 = ...

weixin_45629723的博客 167

Python学习——局部变量全局变量、函数缺省参数、函数多值参数、私有化

变量 变量和数据都是保存再内存中的 python中函数的参数传递和返回值都是靠引用传递的 数据保存再内存中的某个位置,变量中存放的时数据再内存中的地址 引用是指变量中记录数据的地址 可以使用id() 函数查看变量中保存数据所在的内存地址 局部变量和全局变量 局部变量是函数内部定义的变量,只能在函数内部使用 函数执行结束后,局部变量会被系统回收 全局变量是在整个py文件中声明 注:函数在执行时,变量...

眉头的骰 1362

第6章:Python TDD实例变量私有化探索

*这本书是我们老板推荐过的,我在《价值心法》的推荐书单里也看到了它。用了一段时间Cursor软件后,我突然思考,对于测试开发工程师来说,什么才更有价值呢?如何让AI工具更好地辅助自己写代码,或许优质的单元测试是一个切入点。就我个人而言,这本书确实很有帮助。第一次读的时候,很多细节我都不太懂,但将书中内容应用到工作中后,我受益匪浅。比如面对一些让人抓狂的代码设计时,书里的方法能让我逐步深入理解代码的逻辑与设计。

Da_Zhuang的博客 957

Python学习笔记——私有化

一、类中的私有化类中有私有属性,私有方法,对外保密,也不会被子类继承。1、私有属性下面我们就写个类。class test(object): """docstring for test""" def __init__(self): super(test, self).__init__() self.__num = 100私有属性__num,下面我们从外面

OneKey 4038

python 私有化属性

python 没有和其他编程语言一样的定义共有属性和私有属性的关键字,实现属性私有化和属性保护,都是使用代码格式进行的伪效果。 属性名称什么下划线都不加 就是共有属性, - 可以在类内使用 - 可以子类继承内部使用 - 可以在实例化对象使用 - 可以在子类实例化调用 - 在模块直接类名.属性使用 - 在模块直接子类名.属性使用 - 在其他文件 import 模块名称 模块名称.属性 可以使用...

linxue110的博客 883

Python---私有化

在做程序的过程中,有时候程序猿不想让外人动一些值,这个时候,就可以考虑把一些变量进行私有化__属性:就是将属性私有化,访问范围仅仅限于类中。

weixin_73888239的博客 1526

Python基础:15私有化

默认情况下,属性在Python 中都是“public”。   1:双下划线(__)         Python 为类元素(属性和方法)的私有性提供初步的形式。由双下划线开始的属性在运行时被“混淆”,所以直接访问是不允许的。实际上,会在名字前面加上下划线和类名。 class pubpri(object):         def__init__(self, num):      

程序员的自我修养 1668

Python简化类例二:实现变量的私有化,Python没有真正的私有变量,而简化类可以真正实现变量的私有

前言:这是我自己想出来的方法,我不知道是否有人用过这种写类的方法,我也没想出一个什么样名字来称呼它,反正我叫它简化类 之所以称之为简化类,是因为我没办法实现多重继承,但类的基本继承,重写还是实现了的 如果有兴趣的朋友请留下您保贵的建议或加我QQ:410177254 或 微信:carmelcarmen,让这个写法能更有创造性一些

雨落那秋林 408

Python私有化变量,方法

xx: 公有变量 _x: 单前置下划线,私有化属性或方法,from somemodule import *禁止导入,类对象和子类可以访问 __xx:双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整所以访问不到) xx:双前后下划线,用户名字空间的魔法对象或属性。例如:init , __ 不要自己发明这样的名字 xx_:单后置下划线,用于避免与Python关键词的冲突 通过n...

YiJie__ShuSheng的博客 285

Python学习-私有化

title: Python学习-私有化 date: 2019-06-04 20:46:30 tags: python学习 Python学习-私有化 xx: 公有变量 _x: 单前置下划线,私有化属性或方法,from somemodule import * 禁止导入,类对象和子类可以访问 __xx: 双前置下划线,避免与子类中的属性命名冲突,无法在外部直接访问(名字重整,所以访问不到) __x...

jsmok_xingkong的博客 178

python基础学习-公有变量与私有变量

1、共有变量 默认上来说对象的属性和方法都是公开的,我们可以通过点这个操作符进行访问 # 共有的属性和方法通过点操作符访问 # class Person: # name = '人名' # p = person() # print(p.name) 2、私有变量 在Python中定义私有变量只需要在变量名或函数名前加上两个下划线"_",那么这个函数或变量就会为私有的了。 无法直接访问私有变量 # 私有变量,通过添加两个下划线定义 class Person: __name = '人名' p = Per

小夭的博客 7350

Python 成员变量和方法私有化

1成员变量私有化 就是在前面添加 __2 方法私有化 就在方法前面添加 __Python的私有化很简单。

小牧在一直在学习,在前进的道路上大家一起学习,进步。 370

【python基础】python中的私有化

单下划线:约定私有,不强制,提醒开发者不要直接访问。双下划线__:名称改写,防止子类覆盖,外部访问需要通过改写后的名称。双下划线开头和结尾__name__:特殊方法,用于实现类的特殊行为。Python 的私有化机制更多依赖于约定和名称改写,而不是严格的访问控制。开发者应遵循这些约定,以确保代码的可维护性和可读性。

qq_62420985的博客 439

python的私有化问题

首先明确一点,在python中,并没有绝对的私有化。 在Python中,没有绝对在外部访问不了的变量,但Python代码应遵循一个规范:以单个下划线开头的变量或方法应被视为非公开的API,因此不用特别声明,外部的调用者也不应该去访问以单下划线开头的变量或方法,因为类的设计者也遵循着这个规范,他会默认外部的调用者不会访问这种变量(但是如果硬要调用也是可以的)。 另外,Python通过一个非常简单的机制完成了一个伪私有化功能,这个机制名叫名称转写(name mangling):以双下划线开头,并以最..

weixin_51194902的博客 317
上一篇: Python基础学习:装饰器的学习,以及classmethod和staticmethod两种装饰器简单用法
下一篇: Python基础学习:Python连接mysql方法封装
caodingzheng
博客等级 码龄7年 18粉丝 39原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值