[英]instantiate a class python
在 python - 有理由僅使用 static 變量和 ZA81259CEF8E959C3224DF1D45976 方法來實例化 class 例如 -
StaticClass:
first_static_variable = "first arbitrary value"
first_static_variable = "second arbitrary value"
@staticmethod
def just_static_method():
return "arbitrary value"
我在問是否有充分的理由這樣做-
static_class = StaticClass()
還是我應該做
static_class = StaticClass
或者根本不重要。
我打算只使用這個 class 一次。
基於此示例(您錯過了class
關鍵字):
class StaticClass:
first_static_variable = "first arbitrary value"
first_static_variable = "second arbitrary value"
@staticmethod
def just_static_method():
return "arbitrary value"
print(StaticClass)
print(StaticClass())
output 是:
<class '__main__.StaticClass'>
<__main__.StaticClass object at 0x7fea2cb33a60>
括號告訴 Python 創建 class 的實例,缺少它們只會分配對 class 的引用。
有時,您寧願使用模塊來存儲值和函數。 假設兩個文件: main.py
和deps.py
,都在同一個目錄中。
deps.py
:
import re
def is_numeric(s):
return bool(re.search("\A[+-]?(?:\d*\.)?\d+\Z", s))
main.py
:
import deps
print(deps.is_numeric("-19.1")) # test, prints True
如果您正在制作 static 方法,那么由於方法屬於 class 而不是 object,因此您不必初始化 ZABB4A2F2ABB4FDCC0 您基本上可以直接從 class 調用您的方法。 例如,在您的代碼中,您可以調用您的方法StaticClass.just_static_method()
。 如果您想了解 static 變量和普通 class 變量(字段)之間的區別,static 變量對所有對象都是全局的,但字段僅對對象是私有的。 對於 static 和非靜態方法之間的區別,據我所知,它們只是因為它們的運行時情況而有所不同。 我希望這足夠有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.