扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
若是同目录: import 1,3,5
成都创新互联公司服务项目包括华安网站建设、华安网站制作、华安网页制作以及华安网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,华安网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到华安省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!
若不是先把他们加到系统变量里:
import sys
sys.path.append('路径\1')
sys.path.append('路径\3')
sys.path.append('路径\5')
再直接import
from mydefa import A_def
print(A_def(2))#表示当前Python脚本中调用另一个Python脚本(mydefa.py)中的A_def(2)函数
#或者import mydefa;print(mydefa.A_def(2))
'''以下代码存入mydefa.py
import math
def A_def(r):
(Tab)return math.pi*r*r
#from math import pi
#def A_def(r):
#(Tab)return pi*r*r
'''
二、Python调用C/C++\x0d\x0a\x0d\x0a\x0d\x0a1、Python调用C动态链接库\x0d\x0a\x0d\x0a Python调用C库比较简单,不经过任何封装打包成so,再使用python的ctypes调用即可。\x0d\x0a(1)C语言文件:pycall.c\x0d\x0a\x0d\x0a[html] view plain copy \x0d\x0a/***gcc -o libpycall.so -shared -fPIC pycall.c*/ \x0d\x0a#include \x0d\x0a#include \x0d\x0aint foo(int a, int b) \x0d\x0a{ \x0d\x0a printf("you input %d and %d\n", a, b); \x0d\x0a return a+b; \x0d\x0a} \x0d\x0a(2)gcc编译生成动态库libpycall.so:gcc -o libpycall.so -shared -fPIC pycall.c。使用g++编译生成C动态库的代码中的函数或者方法时,需要使用extern "C"来进行编译。\x0d\x0a(3)Python调用动态库的文件:pycall.py\x0d\x0a\x0d\x0a[html] view plain copy \x0d\x0aimport ctypes \x0d\x0all = ctypes.cdll.LoadLibrary \x0d\x0alib = ll("./libpycall.so") \x0d\x0alib.foo(1, 3) \x0d\x0aprint '***finish***' \x0d\x0a(4)运行结果:\x0d\x0a\x0d\x0a\x0d\x0a2、Python调用C++(类)动态链接库 \x0d\x0a\x0d\x0a 需要extern "C"来辅助,也就是说还是只能调用C函数,不能直接调用方法,但是能解析C++方法。不是用extern "C",构建后的动态链接库没有这些函数的符号表。\x0d\x0a(1)C++类文件:pycallclass.cpp\x0d\x0a\x0d\x0a[html] view plain copy \x0d\x0a#include \x0d\x0ausing namespace std; \x0d\x0a \x0d\x0aclass TestLib \x0d\x0a{ \x0d\x0a public: \x0d\x0a void display(); \x0d\x0a void display(int a); \x0d\x0a}; \x0d\x0avoid TestLib::display() { \x0d\x0a cout \x0d\x0ausing namespace std; \x0d\x0aint test() \x0d\x0a{ \x0d\x0a int a = 10, b = 5; \x0d\x0a return a+b; \x0d\x0a} \x0d\x0aint main() \x0d\x0a{ \x0d\x0a cout \x0d\x0a#include \x0d\x0a#include \x0d\x0a \x0d\x0aint fac(int n) \x0d\x0a{ \x0d\x0a if (n
回答于 2022-11-16
【python】如何在某.py文件中调用其他.py内的函数
假设名为a.py的文件需要调用b.py文件内的c(x,y)函数
假如在同一目录下,则只需
import
bif
__name__
==
"__main__":
b.c(x,y)
若只需调用单个函数,也可以
from
b
import
cif
__name__
==
"__main__":
c(x,y)
若a.py和b.py位于不同的目录下,可以用以下方法
(假设b.py位于d盘的根目录下)
1.引用所在路径
import
sys
sys.path.append('d:/')import
bif
__name__=="__main__":
b.pr(x,y)
2.使用imp
import
imp
b=imp.load_source('b','d:/b.py')import
bif
__name__=="__main__":
b.pr(x,y)
一般情况下都是通过import脚本,然后直接调用脚本里的函数,调用函数就可以直接传递参数;因为Python并不像C语言那样有main函数。
import B(脚本名称)
B.hello(参数A,参数B)
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流