本文主要是介绍Python内部类调用外部类的变量,并结合with语法使用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先,with语法通过一个__enter__()方法和一个__exit__()方法,实现自动在某个命令前后执行特定内容,比如,通过with open()可以实现在with语句结束后自动close文件句柄。反正就是非常方便了,具体用法可行自行搜索,不是本文重点。
另外,Python支持类的嵌套,内部类的作用也可以自行再搜索。会发现平时不怎么用,会觉得他很鸡肋,但当用到的时候,就会觉得非常之方便。
这里实现一个功能:有一个变量,在执行某些操作前后需要设置和撤销该变量的值,以便控制其他线程的运行。表述的可能不是很明白,直接上一下演示代码:
class Outter:"""外部类"""def __init__(self):self.allow_thread_running = Trueclass with_change_ip:"""内部类,使用with语法"""def __init__(self, father):"""内部类初始化函数,构造时自动调用:param father: 外部类的实例对象"""self.father = fatherdef __enter__(self):"""with语法执行前调用:return:"""self.father.allow_thread_running = Falsedef __exit__(self, type, value, trace):"""with语法执行完后调用:return:"""self.father.allow_thread_running = Truedef start(self):print(self.allow_thread_running) # True# 传入当前实例对象作为参数with self.with_change_ip(self):print(self.allow_thread_running) # Falseprint(self.allow_thread_running) # TrueOutter().start()
运行效果:
这篇关于Python内部类调用外部类的变量,并结合with语法使用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!