訪問限制 python

2021-10-07 10:36:44 字數 1900 閱讀 9246

python是動態語言,可以給任何物件繫結屬性

>>

>

class

test

(object):

pass

>>

> t = test(

)>>

> t.test =

'12312312'

>>

> t.test

'12312312'

>>

>

type

(t)<

class

'__main__.test'

>

python沒有private等關鍵字來修飾,憑自覺。

可以看出來__name被重新命名為_privatetest__name,不過python並不會阻止你用這個名字去訪問,預設新增了單_的變數都不要隨意訪問。

使用__slots__來限制,name不在元組中,所以無法繫結

>>

>

class

test

(object):

__slots__ =

('test'

)pass

>>

> t = test(

)>>

> t.name =

"nn"

traceback (most recent call last)

: file ""

, line 1,in

attributeerror:

'test'

object has no attribute 'name'

>>

> t.test =

'tt'

如果是子類,子類不繼承父類的__slots____slots__僅對當前類起作用。

class

gtest

(test)

:pass

t = gtest(

)t.name =

'n't.name

'n'

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