类中变量私有化和调用:__x和getx/setx或者property
__xx:双前置下划线,子类不可继承属性、方法,父类私有。
详见:https://www.cnblogs.com/andy9468/p/8299448.html
例子1:隐藏数据:私有化后,用get和set方法
class MoneyClass(object):
def __init__(self):
self.__money = 0 def get_money(self):
return self.__money def set_money(self, value):
if isinstance(value, int):
self.__money = value
else:
print("error:不是整型数字") m1 = MoneyClass()
print(m1.get_money())
m1.set_money(50)
print(m1.get_money())
输出:
0
50
例子2:property属性:自动调用get、set方法
class MoneyClass(object):
def __init__(self):
self.__money = 0 def get_money(self):
return self.__money def set_money(self, value):
if isinstance(value, int):
self.__money = value
else:
print("error:不是整型数字") getsetmoney = property(get_money, set_money) m1 = MoneyClass()
print(m1.getsetmoney)
m1.getsetmoney = 800
print(m1.getsetmoney)
输出:
0
800
例子3:property装饰器:自动调用get、set方法
class MoneyClass(object):
def __init__(self):
self.__money = 0 @property
def getsetmoney(self):
return self.__money @getsetmoney.setter
def getsetmoney(self, value):
if isinstance(value, int):
self.__money = value
else:
print("error:不是整型数字") m1 = MoneyClass()
print(m1.getsetmoney)
m1.getsetmoney = 1000
print(m1.getsetmoney)
输出:
0
1000
类中变量私有化和调用:__x和getx/setx或者property的更多相关文章
- C#同一项目中不同文件或类中的方法进行调用
有两种方法,一是将被调用的类设置成静态类Static,这样就可以直接点出来了,二是将被调用的方法所在类设置成public,这几必须在调用类中先将被调用的类进行实体化,new()出来,再点出来. 一. ...
- 《同一个类中不同方法之间的调用相关问题(省略的类名或者this)》
//同一个类中不同方法之间的调用相关问题(省略的类名或者this) class A { public void B() { System.out.println("b方法运行"); ...
- 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
参考原贴地址:https://blog.csdn.net/clementad/article/details/47339519 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Trans ...
- 【转】在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational)的方法,注解失效的原因和解决方法
参考 原文链接 @Transactional does not work on method level 描述 在同一个类中,一个方法调用另外一个有注解(比如@Async,@Transational) ...
- Spring同一个类中的注解方法调用AOP失效问题总结
public interface XxxService { // a -> b void a(); void b(); } @Slf4j public class XxxServiceImpl ...
- 获取class对象的三种方法以及通过Class对象获取某个类中变量,方法,访问成员
public class ReflexAndClass { public static void main(String[] args) throws Exception { /** * 获取Clas ...
- 4. 在Inspector面板中显示类中变量+ 拓展编辑器
1. C#脚本如下: using UnityEngine; using System.Collections; public class MyTest : MonoBehaviour { ; ; [S ...
- 分析spring事务@Transactional注解在同一个类中的方法之间调用不生效的原因及解决方案
问题: 在Spring管理的项目中,方法A使用了Transactional注解,试图实现事务性.但当同一个class中的方法B调用方法A时,会发现方法A中的异常不再导致回滚,也即事务失效了. 当这个方 ...
- Python类中的装饰器在当前类中的声明与调用
[本文出自天外归云的博客园] 我的Python环境:3.7 在Python类里声明一个装饰器,并在这个类里调用这个装饰器.代码如下: class Test(): xx = False def __in ...
随机推荐
- [Scikit-learn] 1.4 Support Vector Regression
SVM算法 既可用于回归问题,比如SVR(Support Vector Regression,支持向量回归) 也可以用于分类问题,比如SVC(Support Vector Classification ...
- Flink 实现指定时长或消息条数的触发器
Flink 中窗口是很重要的一个功能,而窗口又经常配合触发器一起使用. Flink 自带的触发器大概有: CountTrigger: 指定条数触发 ContinuousEventTimeTrigger ...
- Python - Django - FBV 和 CBV
FBV: Function Base View,基于函数的视图 views.py: from django.shortcuts import render, HttpResponse # FBV de ...
- HTTPS小结 、TSL、SSL
https://segmentfault.com/a/1190000009020635
- ubuntu18.04手动安装二进制MySQL8.0
wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz tar xvJf ...
- Python - 在CentOS7.5系统中安装Python3
注意:以下内容均使用root用户执行操作. 1-确认信息 # uname -a Linux localhost.localdomain 3.10.0-957.el7.x86_64 #1 SMP Thu ...
- 【嵌入式硬件Esp32】ESP32 正确下载姿势
程序的正确下载步骤,以8M flash为例子: 一.硬件连接 ESP32 的运行状态主要由 GPIO0 决定 二.ESP32 Flash 地址配置 ESP32 在编译时,通过 make menucon ...
- 我的Java之路
前言: 之前在学习python,刚开始的时候跟多数小白一样学习一些基础的知识,比如数据类型,用法,基本的语言结构,学了一段时间实在是学习不下去了,真是太TMD的无聊了,很多方法都记不住,也不知道学了这 ...
- 【Gstreamer开发】TI嵌入式处理器GStreamer pipeline
Example GStreamer Pipelines From Texas Instruments Embedded Processors Wiki Jump to: navigation, sea ...
- springboot备份mysql后发送邮件并删除备份文件,支持win和Linux
首先加入springboot的邮箱依赖 <!--邮箱依赖--> <!-- https://mvnrepository.com/artifact/org.springframework ...