20240710 python中的__name__和__main__、navicat连接数据库报错
python中的__name__
和__main__
假如有a.py和b.py
# a.py
def test():
print("test函数调用.")
# 测试代码应该放在这里
if __name__ == "__main__":
test() # 这个调用只会在a.py被直接执行时发生
# b.py
import a
test()
此时运行a.py时,__name__
会被置为__main__
,满足if条件,会执行测试代码。
运行b.py时,__name__
会被置为a(a.py的名字)
此时不满足if条件,不会执行测试代码。
#如果a.py没有if __name__ == "__main__"
def test():
print("test函数调用.")
# 测试代码应该放在这里
test()
print("标记")
# b.py
import a
此时运行b.py,会输出
test函数调用
标记
# b.py
import a
test()
此时运行b.py,会输出
test函数调用
标记
test函数调用
因为a.py函数外的属于顶级语句,只要别的文件导入了a,运行后,test函数外的语句都会执行。
__name__
是Python中一个非常重要的特性,它允许你编写既可以直接运行(作为脚本)又可以被其他模块导入(作为库)的代码。通过将需要在直接运行时执行的代码放在if __name__ == "__main__":
块中,你可以确保这些代码只会在文件被直接运行时执行,而不会被导入时执行。
navicat连接数据库报错2002 - Can't connect to server on ‘localhost'(10061)
解决方法:搜索服务
,在里面找到mysql
,重新启动