定義乙個特殊的slots變數,來限制該class例項能新增的屬性
示例
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# __slots__
class
student1
(object):
pass
defruntest1
(): s = student1()
s.name = "蠟筆小新"
s.age = 6
s.score = 100
print("%s:%d:%d"%(s.name, s.age,s.score))
runtest1()
執行結果
d:\pythonproject\sustudy>python
main
.py蠟筆小新:6
:100
示例
class
student2
(object):
# 用tuple定義允許繫結的屬性名稱
__slots__ = ('name', 'age')
defruntest2
(): s = student2()
s.name = "蠟筆小新"
s.age = 6
s.score = 100
print("%s:%d:%d"%(s.name, s.age,s.score))
runtest2()
執行結果
traceback (most recent call
last):
file "main.py", line 30, in
runtest2()
file "main.py", line 27, in runtest2
print("%s:%d:%d"%(s.name, s.age,s.score))
attributeerror: 'student2' object has no attribute 'score'
由於限制了屬性只有(『name』, 『age』) ,其他的屬性將被限制(has no attribute 『score』) python基礎 使用 slots
正常情況下,當我們定義了乙個class,建立了乙個class的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。先定義class class student object pass 然後,嘗試給例項繫結乙個屬性 s student s.name michael 動態給例項繫結乙個屬...
python語法基礎 slots
slots class student object slots name age 限制student類例項的屬性,最多只能是name和age s student 例項化s s.name micle 為s例項新增name屬性,並賦值 s.age 15 print s.age,s.name 列印s例項...
在Python中使用 slots
這篇文章主要介紹了在python中使用 slots 方法的詳細教程,slots 方法是python的乙個重要內建類方法,基於python2.x版本,需要的朋友可以參考下 正常情況下,當我們定義了乙個class,建立了乙個class的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。...