繁体   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