![](/img/trans.png)
[英]What is the best way to pass multiple parameters to class init in python?
[英]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.