python面向对象——私有属性
2021/11/14 9:10:07
本文主要是介绍python面向对象——私有属性,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
''' 私有属性 ''' ''' java: public 公有 private 私有 protected 保护 python: 定义属性时,没有任何修饰 的都 是公有的 如果在属性或方法前,加两个下划线前缀,那么这个属性或方法,python 解释 器就认为是私有的 ''' class Account(object): def __init__(self,name,balance): # 定义了两个公有属性,这两个属性在类的外部也是可以访问的 # self.name = name # self.balance = balance # 因为公有的属性破坏程序的封装性,导致数据不安全,所以将属性定义私有的 # 当一个类中的属性或方法,全部是私有时,这个类是无意义 的 self.__name = name self.__balance = balance # 私有属性定义好后,可以保证数据 的访问安全 # 但是还有需求去属性进行访问,可以通过 公有接口方法进行间接 访问 # 一般对私有属性会提供 一种 称为 存取器方法的 公有方法 # set/ get方法 # set_属性名 get_属性名 # 因为帐户名一旦确认后无需修改,所以可以不提供 set 方法 # def get_name(self): def get_username(self): return self.__name # 给余额提供 存取方法 def set_balance(self,new_balance): if isinstance(new_balance,int): self.__balance = new_balance else: print('不能存玉皇大帝的钱') def get_balance(self): return self.__balance # 定义一个查看信息的方法 def show_info(self): # # 在类的内部,访问对象的公有属性 # print(self.name + ' 有 ',self.balance ,'元') # 在类的内部,访问对象的私有属性 print(self.__name + ' 有 ', self.__balance, '元') jack = Account('JackMa',9999999) # 在类的外部,访问对象的公有属性 # print(jack.name) # print(jack.balance) # # jack.name = '郭' # print(jack.name) # print(jack.balance) # 访问私有属性 # print(jack.__name) # print(jack._Account__name) # 只是让你了解私有的原理,但是不能这么使用 # 通过 接口方法来访问私有属性 print(jack.get_username()) print(jack.get_balance()) jack.set_balance(88888888) print(jack.get_balance()) # jack.set_name('郭') # print(jack._Account__username) jack.set_balance('十个亿') money = jack.get_balance() print(money)
这篇关于python面向对象——私有属性的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-14获取参数学习:Python编程入门教程
- 2024-11-14Python编程基础入门
- 2024-11-14Python编程入门指南
- 2024-11-13Python基础教程
- 2024-11-12Python编程基础指南
- 2024-11-12Python基础编程教程
- 2024-11-08Python编程基础与实践示例
- 2024-11-07Python编程基础指南
- 2024-11-06Python编程基础入门指南
- 2024-11-06怎么使用python 计算两个GPS的距离功能-icode9专业技术文章分享