python 訪問限制

2021-09-07 03:41:36 字數 1285 閱讀 2184

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...