[英]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.