簡體   English   中英

在python3中初始化類屬性的最佳方法是什么?

[英]What's the best way to init class attribute in python3?

有兩種方法:

1:

def get(params):
    res = "do_something"
    return res

class A():
    a = get(params)

a=A()

2:

class A():
    a = ""

    @classmethod
    def Init(cls,params):
        res = "do_something"
        cls.a = res

a=A()
a.Init()

我不知道該如何選擇,還是有更好的選擇?

類屬性應該是在所有實例之間共享的靜態屬性,並且不會更改值(例如,所有Square實例的num_sides )。 因此,在類級別對它們進行一次初始化是一個好的策略。

所述classmethod在另一方面,主要應該被用於替代構造。 盡管可以訪問該類,但是您的主要目標是初始化實例。 在此類函數中分配類屬性會使讀者感到困惑。 此外,每次調用此構造函數時,它都會初始化該值。

總體而言,第一種方法更好。

暫無
暫無

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

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