一、python调用自定义模块
python简单调用自定义模块 , 最近在用这个玩意儿,所以给大家介绍两种个人认为最简单(但不是太标准,当然也看自己的理解)的方式来调用自定义模块。
- 相同目录下调用。
- 不同目录下调用。
首先介绍第一种(相同目录):
由上图可以看出a,b属于同一个文件夹中的文件,我们在a中调用b文件
b:
def cat():
print("调用cat成功!!")
if __name__=="__main__":
cat()
a:
from b import *
def dog():
print("调用dog成功!!")
if __name__=="__main__":
dog()
cat()
同目录下我们在a中使用from b import * 引用b的所有模块调用b,最后使用b的函数cat()
然后介绍第二种(不同目录):
由上图可以看出b,c属于不同分级的目录下,接下来我们使用c来调用b文件
b:
def cat():
print("调用cat成功!!")
if __name__=="__main__":
cat()
c:
import sys
sys.path.append("D:\pythona")
from b import *
def tiger():
print("调用tiger成功!!")
if __name__=="__main__":
tiger()
cat()
可以看出调用成功,第二种方法就是添加路径到sys中,运行时能找到你所需的路径。添加的路径为你所需模块的文件夹路径(不是文件路径)
你可以试试不添加路径是的情况是什么。
这便是简单的调用模块,但是这里有一点需要给大家强调一下,就是讲解一下,name==“main”:
如果我们是直接执行某个.py文件的时候,该文件中那么__name__ == ”main“是True,但是我们如果从另外一个.py文件通过import导入该文件的时候,这时__name__的值就是我们这个py文件的名字而不是__main__。
这个功能还有一个用处:调试代码的时候,在”if name == 'main’中加入一些我们的调试代码,我们可以让外部模块调用的时候不执行我们的调试代码,但是如果我们想排查问题的时候,直接执行该模块文件,调试代码能够正常运行!
也就是说写了if name == “main“我们可以让外部文件import时不执行main里面的文件,除非直接调用函数;而不写时import会调用所有代码!!
二、python的sort、sorted函数
>>> help(sorted)
Help on built-in function sorted in module __builtin__:
sorted(...)
sorted(iterable, cmp=None, key=None, reverse=False) --> new sorted list
---------------------------------sort----------------------------------------
>>> help(list.sort)
Help on method_descriptor:
sort(...)
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN PLACE*;
cmp(x, y) ->