class person(object):
def __init__(self,name,age,weight,height,money):
self.name = name
self.__age__ = age
self.weight = weight
self._height = height
self.__money = money
def run(self):
print(self.__money)
print("run")
def eat(self,food):
print("eat "+food)
#通過內部方法,去修改私有屬性
#通過自定義的方法實現對私有屬性的賦值與取值
def setmoney(self,money):
#資料的過濾
if money<0:
money = 0
self.__money = money
def getmoney(self):
return self.__money
per = person("hanmeimei",18,60,180,10000)
#per.age = 100
#print(per.age)
#如果要讓內部屬性不被外部直接訪問,在屬性前加兩個下劃線__,
# 在python中如果在屬性前加兩個下劃線,那麼這個屬性
#就變成私有屬性
#print(per.__money) 外部不能使用
#per.run() #內部可以使用
per.setmoney(100)
print(per.getmoney())
#不能直接訪問per。__money是因為python直譯器把__money變成_person__money,
#仍然可以用_person__money訪問,但是強烈建議不要這麼幹。不同版本不同直譯器
#可能存在變數名不一致
per._person__money = 1
print(per._person__money)
#在python中__***__ 屬於特殊變數,可以直接訪問
print(per.__age__)
#在python中,_*** 變數,這樣的變數外部是可以訪問的
#但是,按照約定的規則,當我們看到這樣的變數時,意思是:雖然我可以被訪問,但是請把我視為私有變數,
#不要直接訪問我
print(per._height)
python科技限制 python 訪問限制
class person object def run self print self.money print run def eat self,food print eat food def init self,name,age,height,weight,money self.name name...
Python訪問限制
我們可以給乙個例項繫結很多屬性,如果有些屬性不希望被外部訪問到怎麼辦?python對屬性許可權的控制是通過屬性名來實現的,如果乙個屬性由雙下劃線開頭 該屬性就無法被外部訪問。看例子 class person object def init self,name self.name name self....
Python 訪問限制
內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線 在python中,例項的變數名如果以 開頭,就變成了乙個私有變數 private 只有內部可以訪問,外部不能訪問 class student object def init self,name,score self.name name self...