91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python 如何常量定義

發布時間:2020-09-21 13:40:59 來源:億速云 閱讀:307 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關python 如何常量定義,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

Python并未提供如C/C++/Java一樣的const修飾符,換言之,python中沒有常量,python程序一般通過約定俗成的變量名全大寫的形式表示這是一個常量。然而這種方式并沒有真正實現常量,其對應的值仍然可以被改變。后來,python提供了新的方法實現常量:即通過自定義類實現常量。這要求符合“命名全部為大寫”和“值一旦被綁定便不可再修改”這兩個條件。

用自定義類實現常量,例如,如下寫了一個const.py文件

# -*- coding: utf-8 -*-
# python 3.x
# Filename:const.py
# 定義一個常量類實現常量的功能
# 
# 該類定義了一個方法__setattr()__,和一個異常ConstError, ConstError類繼承 
# 自類TypeError. 通過調用類自帶的字典__dict__, 判斷定義的常量是否包含在字典 
# 中。如果字典中包含此變量,將拋出異常,否則,給新創建的常量賦值。 
# 最后兩行代碼的作用是把const類注冊到sys.modules這個全局字典中。
class _const:
    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
        
import sys
sys.modules[__name__]=_const()

如果上面對應的模塊名為const,使用的時候只要 import const,便可以直接定義常量了,例如:

# test.py
import const
const.PI=3.14
print(const.PI)

我們運行test.py,就可打印出常量的值,如果再次修改const.PI=3.15,則會拋出const.constError異常。

其中,sys.modules[name]=_const()這條語句將系統已經加載的模塊列表中的const替換為_const()實例。這樣,在整個工程中使用的常量都定義在一個文件中,如下:

from project.utils import const
const.PI=3.14

python中import module和from module import的區別

import module 只是將module的那么加入到目標文件的局部字典中,不需要對module進行解釋

from module import xx 需要將module解釋后加載至內存中,再將相應部分加入目標文件的局部字典中

python模塊中的代碼僅在首次被import時被執行一次。

如果我們定義常量的地方和類文件定義在一個文件中,我們可以直接實例一個對象,如下:

# -*- coding: utf-8 -*-
# python 3.x
# Filename:const.py
# 定義一個常量類實現常量的功能
# 
# 該類定義了一個方法__setattr()__,和一個異常ConstError, ConstError類繼承 
# 自類TypeError. 通過調用類自帶的字典__dict__, 判斷定義的常量是否包含在字典 
# 中。如果字典中包含此變量,將拋出異常,否則,給新創建的常量賦值。 
# 最后兩行代碼的作用是把const類注冊到sys.modules這個全局字典中。
class _const:
    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
        
const = _const()
const.PI=3.14
print(const.PI)

關于python 如何常量定義就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永善县| 江源县| 乌鲁木齐县| 新余市| 武胜县| 双鸭山市| 新宁县| 衢州市| 苗栗市| 瓦房店市| 玛多县| 栖霞市| 新巴尔虎右旗| 铁岭市| 彝良县| 光泽县| 西贡区| 抚远县| 息烽县| 孟村| 罗源县| 儋州市| 大港区| 大冶市| 台中市| 军事| 房产| 大洼县| 桃园县| 嵊州市| 徐闻县| 遵义市| 三亚市| 建德市| 保定市| 老河口市| 诸暨市| 兴义市| 鄂温| 黔西县| 清水河县|