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__":块中,你可以确保这些代码只会在文件被直接运行时执行,而不会被导入时执行。

解决方法:搜索服务,在里面找到mysql,重新启动

posted @ 2024-07-11 11:14  marverdol  阅读(5)  评论(0)    收藏  举报