使用“ with”语句定义的Python变量-作用域是什么?

时间:2019-10-22 13:34:03

标签: python

class S:
    def __init__(self):
        sess.do_something()

主要:

if __name__ == '__main__':
    with Session() as sess:
        s1 = S()
        s1.do_something()

只要class S在同一个文件中,以上代码即可工作。当类在单独的文件中时,它不起作用(NameError: name 'sess' is not defined)。

这是预期的吗?

1 个答案:

答案 0 :(得分:0)

您遇到的问题与with语句无关。 您只是以错误的方式创建了一个类。 如果您想在课堂上使用do_something()的{​​{1}}方法,则可以从中使用inheritSession(),也可以将class S(Session): ...作为变量:

sess