在python中,除了调用下载的扩展库之外,还可以自定义函数,方便自己。把基础模块放在固定文件夹(或相对固定文件夹),使用sys.append(r’自定义的模块路径’)实例如下:
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:国际域名空间、虚拟主机、营销软件、网站建设、大悟网站维护、网站推广。
1、在E:pycharm新建hello.py实现基础功能函数(定义一个hello()函数)
2、 调用自定义的函数
3、 运行结果为:
更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python中如何调用自己写的函数的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
首先将你写的函数以.py的形式保存起来,如a. py(好像不能直接用数字),其中你写的函数为function()。
然后在a.py的run-python Shell中输入:
import a
a.function(objection)就可以了
函数调用的基本语法格式如下所示:
[返回值] = 函数名([形参值])
其中,函数名即指的是要调用的函数的名称;形参值指的是当初创建函数时要求传入的各个形参的值。如果该函数有返回值,我们可以通过一个变量来接收该值,当然也可以不接受。
C/C++对Python的调用层次可以分为三个层次, (1) 高层次的调用, (2)纯Python调用, (3) Python方法的扩展(也就使向Python输出调用函数). 这里我主要讨论(1)和(2)两种方法.
1 高层次的调用
这是最简单的一种在C/C++中调用Python的方法. 它直接的调用Python提供的C调用接口函数, 这些函数主要有: PyRun_SimpleString(), PyRun_SimpleStringFlags(), PyRun_SimpleFile(), PyRun_SimpleFileEx()和PyRun_SimpleFileExFlags()几个. 函数的具体用法参考Python的文档.
这里举个例子来说明这种层次的用法:
由这个例子可见, 在C/C++中调用Python的内容非常简单, 只要构造一个简单的Python调用字符串.这里要注意的就是, Python调用串语句之间要用'/n'来分开, 且语句之间不能有空格, 如上面的Python字符串不能写成: "import sys/n print sys.path" , 否则要出错的.
// c/c++ 中 Python 调用必须的头文件
#include Python.h
//
int main(int argc, char* argv[])
{
// 初始化Python解析环境
Py_Initialize();
// 构造Python执行脚本
char szPyScript[128];
sprintf(szPyScript, "import sys/nprint sys.path");
if(PyRun_SimpleString(szPyScript) != 0)
{
sprintf(stderr, "execute /'%s/'failed!", szPyScript);
return -1;
}
// 清除Python解析环境
Py_Finalize();
}
//
//
以上的例子也表明了在C/C++中调用Python的基本结构, 就是
(1) 先初始化Python环境然: Py_Initialize()
(2) 具体对Python的操作
(3) 清除Python环境
更复杂的一个使用高层调用的例子, 这个例子用PyRun_SimpleFile的例子.
这里值得注意是, 在Window中:
(1) 链接debug版本的时候会自动链接PythonXX(_d).lib库, PythonXX_d安装时是没有安装的, 所以要显示的指定链接PythonXX.lib库, 不知道VC6.0为什么还会去找PythonXX_d.lib, 在vs7.0不会.
(2) 编译时要以 /MD(多线程DLL) 选项编译(不论时debug版本还时release版本都一样).
以上我在VC7.0中可以正确的运行, 在VC6.0这样还不行, 可能和我使用的版本有关系(我用的版本是:Python24.lib). 有知道的请赐教!!
// c/c++ 中 Python 调用必须的头文件
#include Python.h
//
int main(int argc, char* argv[])
{
// 初始化Python解析环境
Py_Initialize();
//
char szFile[] = "PyFile.py";
//sprintf(szPathFile, "%s//%s", szPath, szFile);
FILE* fp = fopen(szFile, "r");
if(PyRun_SimpleFile(fp, szFile) != 0)
{
fclose(fp);
sprintf(stderr, "PyRun_SimpleFile(%s) failed!", saFile);
return -1;
}
fclose(fp);
// 清除Python解析环境
Py_Finalize();
}
2 纯Python调用