python主函数位置 python在主函数中调用函数( 四 )


在此示例代码中,文件的前10行具有与之前相同的内容 。第12行的第二个函数创建并返回一些示例数据 , 第17行的第三个函数模拟将修改后的数据写入数据库 。
第21行定义了main()函数 。在此示例中,对main()做出修改,它将调用数据读取 , 数据处理以及数据写入等功能 。
首先 , 从read_data_from_web()中创建data 。将data作为参数传入process_data(),之后将返回modified_data 。最后 , 将modified_data传入write_data_to_database() 。
脚本的最后两行是条件语块用于验证__name__,并且如果if语句为True,则执行main() 。
在命令行中运行如下所示:
根据执行结果,Python解释器在执行main()函数时,将依次执行read_data_from_web(),process_data()以及write_data_to_database() 。当然,您也可以导入best_practices.py文件并重用process_data()作为不同的数据输入源 , 如下所示:
在此示例中,导入了best_practices并且将其简写为bp 。
导入过程会导致Python解释器执行best_practices.py的全部代码,因此输出显示解释文件用途的信息 。
然后,从文件中存储数据而不是从Web中读取数据 。之后 , 可以重用best_practices.py文件中的process_data()和write_data_to_database()函数 。在此情况下 , 可以利用代码重写来取代在main()函数中实现全部的代码逻辑 。
实践总结
以下是Python中main()函数的四个关键最佳实践:
结论
恭喜!您现在已经了解如何创建Python main()函数了 。
本文介绍了如下内容:
现在,您可以开始编写一些非常棒的关于Python main()函数代码啦!
python怎么快速定位函数位置使用pycharm然后直接使用F12就可以直接转到函数定位位置
也可以使用Structure查看函数python主函数位置,直接就可以定位到函数位置
主调函数和被调函数只能在同一文件夹里吗并不一定,
如果被调函数并不是自定义函数,那么只要在主函数中,申明相应的数据库,即可调用数据库里的函数,但数据库里的函数与主函数并不在同一文件,以python为例,调用外函数要用import+数据库(C,JAVA什么的就用include) , 即可调用数据库中函数;
如果是自定义的函数,二者就要在同一文件夹(可以在不同类) , 如果在不同文件夹,在别的文件夹里调用函数,计算机又怎么知道在哪里能找到这样一个函数呢?
如果你用的编程软件是IDEA的话,应该很容易理解每次写一个新代码,都会创建一个新文件夹,然后在创建文档编写代码
python主函数怎么写一般来说 , Python程序员可能是这样写main()函数的:
"""Module docstring.
This serves as a long usage message.
"""import sysimport getoptdef main():
# parse command line options
try:
opts, args = getopt.getopt(sys.argv[1:], "h", ["help"])except getopt.error, msg:print msgprint "for help use --help"
sys.exit(2)# process options
for o, a in opts:if o in ("-h", "--help"):print __doc__
sys.exit(0)# process arguments
for arg in args:
process(arg) # process() is defined elsewhereif __name__ == "__main__":
main()1234567891011121314151617181920212223242526
Guido也承认之前自己写的main()函数也是类似的结构,但是这样写的灵活性还不够高,尤其是需要解析复杂的命令行选项时 。为此,他向大家提出了几点建议 。
添加可选的 argv 参数
首先 , 修改main()函数,使其接受一个可选参数 argv,支持在交互式shell中调用该函数:
def main(argv=None):
if argv is None:
argv = sys.argv# etc., replacing sys.argv with argv in the getopt() call.1234

推荐阅读