構造Python中的常量類

2021-07-10 16:13:15 字數 945 閱讀 5800

python中不存在像const那樣的常量關鍵字,只是在內建空間中提供了一小部分常量,比如true、false、none等。那麼在python中如何使用常量呢?一般來說有如下兩種方法:

import const

const.author =

'test'

# 將常量集中到乙個檔案 > 無論採用那種方式實現常量,都建議將常量集中到乙個檔案中,因為這樣有利於維護,一旦修改常量的值,可以集中統一進行而不是逐個進行檢查。

#coding:utf-8

class

_const

:class

consterror

(typeerror)

:pass

class

constcaseerror

(consterror)

:pass

def__setattr__

(self, name, value)

:if name in self.__dict__:

raise self.consterror(

"can't change const %s"

% name)

ifnot name.isupper():

raise self.constcaseerror(

'const name "%s" is not all uppercase'

% name)

self.__dict__[name]

= value

const = _const(

)const.pi =

3.14

from const import const

print

(const.pi)

類中的常量

類中的常量 有時我們希望某些常量只在類中有效。由於 define定義的巨集常量是全域性的,不能達到目的,於是想當然地覺得應該用const修飾資料成員來實現。const資料成員的確是存在的,但其含義卻不是我們所期望的。const資料成員只在某個物件生存期內是常量,而對於整個類而言卻是可變的,因為類可以...

類中的常量

類中的常量 2008年03月14日 星期五 上午 00 21 有時我們希望某些常量只在類中有效。由於 define 定義的巨集常量是全域性的,不能達到目的,於是想當然地覺得應該用const 修飾資料成員來實現。const 資料成員的確是存在的,但其含義卻不是我們所期望的。const 資料成員只在某個...

Python 類的構造

定義dog類,類名一般首字母大寫。方法 init 是乙個特殊的方法,請注意是雙下劃線。每當你根據dog類建立新例項時,python都會自動執行它。在這個方法的名稱中,開頭和末尾各有兩個下劃線,這是一種約定,旨在避免python預設方法與普通方法發生名稱衝突。類的方法與普通的函式只有乙個特別的區別 它...