簡體   English   中英

如何在 Python 中的命名空間下創建常量 C 之類的 struct 對象

[英]How to create constant C like struct objects under a namespace in Python

我想創建一個類的常量對象,我可以在其他類和函數中一次又一次地使用它

# Simple C like struct
class data:
  def __init__(self,a,b)
    self.a = a
    self.b = b

# Constant objects in a namespace ??
class DATA_CONSTANTS:
  DATA1 = data(0,0)
  DATA2 = data(3,5)
  DATA3 = data(43, 23)

如果我現在想使用 DATA_CONSTANTS.DATA1,它會在第一次調用時創建還是每次我引用這個對象時創建?

我正在尋找的東西類似於在 C++ 中,您可以在全局或給定命名空間中創建常量對象,這些對象可以作為具有完全限定名稱的常量對象重用,例如 DATA_CONSTANTS::DATA1 或 DATA_CONSTANTS::DATA2 等。

但是,我不確定我在上面所做的是在 Python 中完成相同操作的 Pythonic 方式。 這樣對嗎 ?

在類的上層聲明的變量類變量,並且只在聲明它們的位置創建一次,然后它們保持常量。 你可以親眼看看:

def calc_value():
    print("computed the value")
    return 1

class Foo:
    my_var = calc_value()

print(Foo.my_var + Foo.my_var)
# prints "computed the value" then 2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM