1. 程式人生 > >面向物件程式設計-私有屬性和私有方法

面向物件程式設計-私有屬性和私有方法

1.私有屬性

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:James Tao
 4 class Role(object):#執行時之後就存在記憶體裡
 5 
 6     #建構函式
 7     #作用:在例項化時做一些類的初始化工作,開闢一塊記憶體
 8     def __init__(self,name,role,weapon,life_value=100,money=15000):
 9         self.name=name #例項變數(靜態屬性),作用域是例項本身,儲存在例項的記憶體裡
10         self.role=role
11 self.weapon=weapon 12 self.__life_value=life_value #兩個下劃線,定義私有屬性 13 self.money=money 14 15 #解構函式 16 #作用:在例項釋放、銷燬的時候執行,通常用於一些收尾工作,例如,關閉一些資料庫連線,開啟的臨時檔案 17 def __del__(self):#在例項釋放的時候自動執行 18 print('%s徹底死了' % self.name) 19 20 def show_status(self):#私有屬性在內部可以訪問和修改
21 print('''name:{_name} weapon:{_weapon} life_value:{_life_value}''' 22 .format(_name=self.name,_weapon=self.weapon,_life_value=self.__life_value)) 23 24 def change_life_value(self):#私有屬性在內部可以訪問和修改 25 self.__life_value=self.__life_value-10 26 27 def shot(self):#
類的方法,功能(動態屬性) 28 print('%s is shooting...' % self.name) 29 30 def got_shot(self): 31 print('%s is getting shot...' % self.name) 32 33 def buy_gun(self,gun_name): 34 print('%s has bought %s' % (self.name,gun_name)) 35 36 role1=Role('Trump1','terrorist','AWM') 37 #print(role1.__life_value) #私有屬性在外部不可以訪問和修改 38 role1.change_life_value() 39 role1.show_status()

結果:

2.私有方法

 1 #!/usr/bin/env python
 2 # -*- coding:utf-8 -*-
 3 # Author:James Tao
 4 #!/usr/bin/env python
 5 # -*- coding:utf-8 -*-
 6 # Author:James Tao
 7 class Role(object):#執行時之後就存在記憶體裡
 8 
 9     #建構函式
10     #作用:在例項化時做一些類的初始化工作,開闢一塊記憶體
11     def __init__(self,name,role,weapon,life_value=100,money=15000):
12         self.name=name #例項變數(靜態屬性),作用域是例項本身,儲存在例項的記憶體裡
13         self.role=role
14         self.weapon=weapon
15         self.__life_value=life_value #兩個下劃線,定義私有屬性
16         self.money=money
17 
18     #解構函式
19     #作用:在例項釋放、銷燬的時候執行,通常用於一些收尾工作,例如,關閉一些資料庫連線,開啟的臨時檔案
20     def __del__(self):#在例項釋放的時候自動執行
21         print('%s徹底死了' % self.name)
22 
23     def shot(self):#類的方法,功能(動態屬性)
24         print('%s is shooting...' % self.name)
25 
26     def __got_shot(self):#加兩個下劃線,定義私有方法
27         print('%s is getting shot...' % self.name)
28 
29     def buy_gun(self,gun_name):
30         print('%s has bought %s' % (self.name,gun_name))
31 
32 role1=Role('Trump1','terrorist','AWM')
33 #role1.__got_shot() #私有方法在外部無法訪問