cookbook 6 2 定義常量

2022-08-24 11:45:10 字數 1031 閱讀 2510

任務:

需要定義一些模組級別的變數(比如命名的常量),而且客戶**無法將其重新繫結;

解決方案:

#

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