簡體   English   中英

python:如何將類函數結果分配給同一個類中的類變量

[英]python: How to assign a class function result to a class variable in the same class

我是 python 的初學者,想了解 python 類模塊和類變量。

我只想將類函數的返回值分配給類變量。 我嘗試了不同的方法,這些在 python 中有效嗎?

示例代碼:

class Example():
    def class_member(self):
        dict_1 = {'k1' : 'v1','k2' : 'v2'}
        return dict_1

    class_var = class_member()
    print(class_var)

x_obj =  Example()

錯誤:

    class_var = class_member()
TypeError: class_member() takes exactly 1 argument (0 given)

    class_var = class_member(self)
NameError: name 'self' is not defined

    class_var = Example.class_member()
NameError: name 'Example' is not defined

您的類使用存在許多問題。 發生錯誤 1 ​​是因為在您的類定義中,您已經聲明 class_member() 接受“self”,它是對您尚未創建的類的當前實例的引用。 發生錯誤 2 是因為 'self' 已被傳遞到 class_member() 中,就好像它是一個變量一樣。 錯誤 3 很可能是由類定義不在需要它的文件中引起的。

    class Example(): 
        def __init__ (self):
            self.dict_1 = {'k1' : 'v1','k2' : 'v2'} 

        def class_member (self): 
            return self.dict_1

    my_object = Example()
    class_var = my_object.class_member()
    print(class_var)

下次一定要先查看 Python 文檔。 https://docs.python.org/3/tutorial/classes.html

如果你需要在一個類中存儲變量,你可能需要一個初始化函數__init__在兩側帶有雙下划線。 並且您將需要在 'class_var' 前面有一個self 這意味着該變量已成為類的一部分。 而且您還需要在“class_member”函數前面有一個self 這意味着該函數屬於此類。

class Example:
    def __init__(self):
        self.class_member()

    def class_member(self):
        dict_1 = {'k1' : 'v1','k2' : 'v2'}
        self.class_var = dict_1
e = Example()
print(e.class_var) #prints {'k1': 'v1', 'k2': 'v2'}

實現此目的的另一種方法是制作 Example 類的 dict_1 屬性,然后在 class_member 函數中返回它。

class Example():
  dict_1 = {'k1' : 'v1','k2' : 'v2'}
  def class_member(self):
    return self.dict_1

example = Example()

print(example.dict_1) # prints {'k1': 'v1', 'k2': 'v2'}
print(example.class_member()) # prints {'k1': 'v1', 'k2': 'v2'}

我建議您瀏覽此鏈接並詳細閱讀。

暫無
暫無

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

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