类中变量私有化和调用:__x和getx/setx或者property
2024-08-26 21:06:58
__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
最新文章
- PHP函数基础知识.png
- html canvas 弹球(模仿)
- SCU 4424(求子集排列数)
- 【JUnit 报错】 method initializationerror not found:JUnit4单元测试报错问题
- LINQ标准查询操作符(一)——select、SelectMany、Where、OrderBy、OrderByDescending、ThenBy、ThenByDescending和Reverse
- 20160327javaweb 之JSP入门
- Linux Shell编程(22)——时间/日期 命令
- ZOJ3527
- 使用Dreamweaver格式化HTML代码
- Student implements java.io.Serializable
- 【IDE】IntelliJ IDEA (Mac) 运行速度优化(问题起因:debug模式突然变得巨慢)
- java.util.HashSet
- BZOJ 4566: [Haoi2016]找相同字符 [后缀自动机]
- 教程一 openwrt路由器入门 远程命令行+文件系统
- 零基础学Python--------入门篇 第1章 初始Python
- jQuery实现淘宝购物车小组件
- C - 数字配对 (网络流 最大费用最大流)
- 下载从网页里面提取出来的图片(将url指向的图片下载并保存、从命名)
- JSP报错Syntax error, insert ";;"; to complete Statement
- Java语法糖之内部类