<i id='fF4Wu'><tr id='fF4Wu'><dt id='fF4Wu'><q id='fF4Wu'><span id='fF4Wu'><b id='fF4Wu'><form id='fF4Wu'><ins id='fF4Wu'></ins><ul id='fF4Wu'></ul><sub id='fF4Wu'></sub></form><legend id='fF4Wu'></legend><bdo id='fF4Wu'><pre id='fF4Wu'><center id='fF4Wu'></center></pre></bdo></b><th id='fF4Wu'></th></span></q></dt></tr></i><div id='fF4Wu'><tfoot id='fF4Wu'></tfoot><dl id='fF4Wu'><fieldset id='fF4Wu'></fieldset></dl></div>
    • <bdo id='fF4Wu'></bdo><ul id='fF4Wu'></ul>
    <legend id='fF4Wu'><style id='fF4Wu'><dir id='fF4Wu'><q id='fF4Wu'></q></dir></style></legend>
    <tfoot id='fF4Wu'></tfoot>

  • <small id='fF4Wu'></small><noframes id='fF4Wu'>

        为什么不能从方法访问类变量?

        时间:2024-08-11

          <small id='tj2xj'></small><noframes id='tj2xj'>

                  <tbody id='tj2xj'></tbody>
                  <bdo id='tj2xj'></bdo><ul id='tj2xj'></ul>
                • <legend id='tj2xj'><style id='tj2xj'><dir id='tj2xj'><q id='tj2xj'></q></dir></style></legend>
                • <i id='tj2xj'><tr id='tj2xj'><dt id='tj2xj'><q id='tj2xj'><span id='tj2xj'><b id='tj2xj'><form id='tj2xj'><ins id='tj2xj'></ins><ul id='tj2xj'></ul><sub id='tj2xj'></sub></form><legend id='tj2xj'></legend><bdo id='tj2xj'><pre id='tj2xj'><center id='tj2xj'></center></pre></bdo></b><th id='tj2xj'></th></span></q></dt></tr></i><div id='tj2xj'><tfoot id='tj2xj'></tfoot><dl id='tj2xj'><fieldset id='tj2xj'></fieldset></dl></div>
                  <tfoot id='tj2xj'></tfoot>
                  本文介绍了为什么不能从方法访问类变量?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  考虑:

                  class Foo:
                      a = 1
                      def bar():
                          print(a)
                  

                  我希望a通过限定规则作用域对该方法可用:首先是本地,然后是封闭.

                  Foo创建命名空间和作用域,不是吗?

                  bar创建一个作用域;它不是包含在类的作用域中吗?bar的作用域中没有定义a,所以我希望它从封闭的作用域中提取类变量。

                  显然,我对名称空间和作用域感到困惑。我试着阅读了这方面的资料,但没有找到关于这一点的明确说明(当然,self.a是有效的)。

                  推荐答案

                  类主体不是嵌套作用域,No。PythonExecution Model显式排除它:

                  在类挡路中定义的名称的范围仅限于类挡路;它不会扩展到方法的代码块

                  这是因为类的主体被执行以形成类属性;将其视为具有局部变量的函数,并且局部变量将成为新类对象的属性。

                  然后,您可以直接在类(Foo.a)上访问这些属性,也可以通过实例访问这些属性(其中属性查找通过类)。

                  这篇关于为什么不能从方法访问类变量?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:为什么计划的Github操作工作流没有在正确的时间触发cron? 下一篇:使用Srapy和Splash跟踪javascript分页

                  相关文章

                • <tfoot id='uSECy'></tfoot>
                • <legend id='uSECy'><style id='uSECy'><dir id='uSECy'><q id='uSECy'></q></dir></style></legend>

                  • <bdo id='uSECy'></bdo><ul id='uSECy'></ul>

                    <small id='uSECy'></small><noframes id='uSECy'>

                    1. <i id='uSECy'><tr id='uSECy'><dt id='uSECy'><q id='uSECy'><span id='uSECy'><b id='uSECy'><form id='uSECy'><ins id='uSECy'></ins><ul id='uSECy'></ul><sub id='uSECy'></sub></form><legend id='uSECy'></legend><bdo id='uSECy'><pre id='uSECy'><center id='uSECy'></center></pre></bdo></b><th id='uSECy'></th></span></q></dt></tr></i><div id='uSECy'><tfoot id='uSECy'></tfoot><dl id='uSECy'><fieldset id='uSECy'></fieldset></dl></div>