簡體   English   中英

實例化一個 class python

[英]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.pydeps.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.

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