任務:
需要定義一些模組級別的變數(比如命名的常量),而且客戶**無法將其重新繫結;
解決方案:
#coding = utf-8
class
_const(object):
class consterror(typeerror): pass
def__setattr__
(self,name,value):
if name in self.__dict__
:
raise self.consterror,"
can't rebind const(%s)
" %name
self.
__dict__[name] =value
def__delattr__
(self,name):
if name in self.__dict__
:
raise self.consterror,"
can't unbind const(%s)
" %name
raise
nameerror,name
import
syssys.modules[
__name__] = _const()
使用方法:
1、將以上**儲存為const.py,然後將該檔案的目錄新增到sys.path目錄下;
2、然後執行const.py
3、在python shell中輸入:
import const
#測試**
const.magic = 23
備註:現在任何客戶**都可以匯入const,並將const模組的乙個屬性繫結一次,但僅能繫結一次;
一旦某屬性已經被繫結,程式無法將其重新繫結或者解除繫結
const.magic = 99 #丟擲const.consterror
del const.magic #丟擲const.consterror
常量符號定義
1 特點 編譯時符號所在的位置就會替換為它代表的常量 2 偽指令 2.1 語法 name expreion 2.1.1 expression 只能是整數或整數表示式 2.1.2 name 可以重複定義為不同的整數或整數表示式 例如 count 500 size list 3 equ 偽指令 3.1 ...
常量字段定義
隱含為static 必須在宣告時初始化 必須被初始化為編譯時常量值 只有簡單型別,列舉,字串才可以是常量 常量字段 class pair private const int x 0,y 0 解析 在c 中,常量字段隱含為static,但你不能顯式宣告乙個常量欄位是static static cons...
Python定義常量
i 訪問字典的元素使用dobj.get key somethingelse 如果對應key值元素不存在,你將會得到somethingelse值,例如 not found 不要使用dobj key 因為如果key對應元素不存在,則會產生keyerror異常,這樣必須使用try except來封裝 ii...