[英]how to change a default parameter in instantiating a python class?
我有一個可以用兩種不同方式實例化的python類。 我可以創建type1類或type2類。...但是如何在實例化期間僅更改一個特定的默認值呢?
class MyClass:
DEFAULT_PARAMS = {
"type_1": {
"name": "smith", # Stock name
"region": "newman",
"country": "USA"
},
"type_2": {
"age": "34", # Stock name
"gender": "male",
"income": "100":
}
}
m = MyClass("type_1")
m = MyClass("type_2")
假設我要創建一個類型為type_1的類,但是要將國家/地區更改為(例如CANADA)。...正確的語法是什么?
如果type_1
和type_2
必須都屬於同一個類,那么這似乎是類繼承的一個好用例:
class MyClass:
pass
class Type1(MyClass):
def __init__(self, name="smith", region="newman", country="USA"):
self.name = name
self.region = region
self.country = country
class Type2(MyClass):
def __init__(self, age="34", gender="male", income="100"):
self.age = age
self.gender = gender
self.income = income
您可以覆蓋默認屬性,例如:
x = Type1(country="CANADA")
在這種情況下, Type1
和Type2
的實例也是MyClass
實例:
x = Type1(country="CANADA")
print(isinstance(x, MyClass)) # True
y = Type2()
print(isinstance(y, MyClass)) # True
同樣,這只是我的看法,但是我發現age
和income
設置得很奇怪。 也許應該改為數字?
class Type2(MyClass):
def __init__(self, age=34, gender="male", income=100):
self.age = age
self.gender = gender
self.income = income
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.