Python基礎 使用 slots

2021-08-13 14:03:38 字數 1173 閱讀 6698

定義乙個特殊的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的例項後,我們可以給該例項繫結任何屬性和方法,這就是動態語言的靈活性。...