Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
请参阅Python类外部函数中定义的变量_Python_Django - Fatal编程技术网

请参阅Python类外部函数中定义的变量

请参阅Python类外部函数中定义的变量,python,django,Python,Django,请原谅我的新手问题,但我想让我自己弄清楚。从类外的函数内部访问类变量时出现问题。在下面的代码中,我需要文本,text2。我得到的变量是元组,但我需要单独使用它们。如何更新代码以获得定义的变量,如text=var1和text2=var2?提前谢谢 from django.shortcuts import render class Someclass(): def method_1(self): self.var2 = 'var2' self.var1 =

请原谅我的新手问题,但我想让我自己弄清楚。从类外的函数内部访问类变量时出现问题。在下面的代码中,我需要
文本,text2
。我得到的变量是元组,但我需要单独使用它们。如何更新代码以获得定义的变量,如
text=var1
text2=var2
?提前谢谢

from django.shortcuts import render

class Someclass():
    def method_1(self):
        self.var2 = 'var2'
        self.var1 = 'var1'
        return self.var1 ,self.var2

def func(request):
    cls = Someclass()
    text2 = cls.method_1()
    text = cls.method_1()
    content = {
        'text': text,
        'text2': text2,
    }
    return render(request, "web/page.html", content)

因为您返回的是元组,所以应该在单个调用中将它们的值直接分配给变量

大概是这样的:

text, text2 = cls.method_1()

因为您返回的是元组,所以应该在单个调用中将它们的值直接分配给变量

大概是这样的:

text, text2 = cls.method_1()
而不是: text2=cls.method_1() text=cls.method_1()

做: text2,text=cls.method_1()

而不是: text2=cls.method_1() text=cls.method_1()

做:
text2,text=cls.method_1()

使用
元组解包
-您可以返回多个结果,并从函数接收多个结果

text, text2 = cls.method_1()

此外,最好不要将变量命名为text和text2。而且
cls
是一个类常用的词,在你的代码中
cls
是一个实例,这有点不和谐:)

使用
tuple unpacking
-你可以返回多个结果,并从一个funct接收多个结果

text, text2 = cls.method_1()

此外,最好不要将变量命名为text和text2。而且
cls
是一个用于类的常用词,在您的代码中
cls
是一个实例,这有点不和谐:)

谢谢!但如何让它更“pythonic”?:)让这个名字有意义。例如,如果您有
class Parser()
,那么
Parser=Parser()
facebook\u Parser=facebook Parser(args)
text
text2
也是如此。或者至少把它命名为
obj
-而不是
cls
:)谢谢!但如何让它更“pythonic”?:)让这个名字有意义。例如,如果您有
class Parser()
,那么
Parser=Parser()
facebook\u Parser=facebook Parser(args)
text
text2
也是如此。或者至少将其命名为
obj
-而不是
cls
:)感谢编辑并询问如何指出灰色背景的文本?感谢编辑并询问如何指出灰色背景的文本?