當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python types.SimpleNamespace用法及代碼示例


用法:

class types.SimpleNamespace

一個簡單的object 子類,提供對其命名空間的屬性訪問,以及有意義的repr。

object 不同,使用 SimpleNamespace 您可以添加和刪除屬性。如果 SimpleNamespace 對象使用關鍵字參數進行初始化,則這些參數會直接添加到底層命名空間。

該類型大致相當於以下代碼:

class SimpleNamespace:
    def __init__(self, /, **kwargs):
        self.__dict__.update(kwargs)

    def __repr__(self):
        items = (f"{k}={v!r}" for k, v in self.__dict__.items())
        return "{}({})".format(type(self).__name__, ", ".join(items))

    def __eq__(self, other):
        if isinstance(self, SimpleNamespace) and isinstance(other, SimpleNamespace):
           return self.__dict__ == other.__dict__
        return NotImplemented

SimpleNamespace 可以作為 class NS: pass 的替代品。但是,對於結構化記錄類型,請改用 namedtuple()

3.3 版中的新函數。

在 3.9 版中更改:repr 中的屬性順序從字母順序更改為插入順序(例如dict)。

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 types.SimpleNamespace。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。