簡體   English   中英

從 Python 中的另一個類創建默認構造函數

[英]Creating a default constructor from another class in Python

我創建了兩個類:

class MyBaseClass(object):

    string_a = None
    string_b = None

    def __init__(self):
        self.string_a = str()
        self.string_b = str()

class MyClass(object):

    my_strings = None

    def __init__(self):
        my_strings = List[MyBaseClass]

這似乎可以很好地創建它們,但我嘗試在我的代碼中附加一個列表,並且my_strings is None總是發生:

my_class = MyClass()

# Errors here since the my_class.my_strings is None still
my_class.append("heelo", "world")

如何創建一個默認的List[MyBaseClass]不是 None 但里面有 0 個對象?

那這個呢

class MyBaseClass(object):
    string_a = None
    string_b = None

    def __init__(self, a, b):
        self.string_a = a
        self.string_b = b


class MyClass(object):
    my_strings: List[MyBaseClass] = None

    def __init__(self):
        self.my_strings = []


my_class = MyClass()

my_class.my_strings.append(MyBaseClass("heelo", "world"))

print(my_class.my_strings[0].string_a)
print(my_class.my_strings[0].string_b)  

在 Python 中列表沒有類型。 另請參閱此問題

您的示例的工作版本可能如下所示:

class MyBaseClass(object):

    def __init__(self, a='', b=''):

        self.string_a = a
        self.string_b = b


class MyClass(object):

    def __init__(self):

        self.my_strings = list()

    def append(self, a, b):

        self.my_strings.append(MyBaseClass(a, b))


my_class = MyClass()
my_class.append("heelo", "world")

您還詢問了默認構造函數。 實現此目的的一種簡單方法是使用默認參數,如上面的MyBaseClass構造函數。

暫無
暫無

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

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