重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、首先在当前目录下找有没有abc、abc.py
创新互联专注为客户提供全方位的互联网综合服务,包含不限于网站设计、做网站、蒲城网络推广、微信平台小程序开发、蒲城网络营销、蒲城企业策划、蒲城品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供蒲城建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com
2、找python的安装目录:F:\Python2.7Exe\Lib\site-packages;F:\Python2.7Exe\Lib;
3、找电脑中path下面的目录
于是我改变路径,将保存的abc.py文件直接放在python的安装目录下,使用import abc命令,然后在Python交互界面用 abc.XXX(XXX是abc.py文件中的定义函数的函数名),解决了调用自定义函数问题。
在python中,除了调用下载的扩展库之外,还可以自定义函数,方便自己。把基础模块放在固定文件夹(或相对固定文件夹),使用sys.append(r’自定义的模块路径’)实例如下:
1、在E:pycharm新建hello.py实现基础功能函数(定义一个hello()函数)
2、 调用自定义的函数
3、 运行结果为:
更多Python相关技术文章,请访问Python教程栏目进行学习!以上就是小编分享的关于python中如何调用自己写的函数的详细内容希望对大家有所帮助,更多有关python教程请关注环球青藤其它相关文章!
函数是组织好,可重复使用的,用来实现相关功能的代码段
函数提高了代码的重复利用率和应用的模块性。
除Python自带的函数之外,也可以自己创建函数,叫做自定义函数
语法:
函数代码块以 def 开头
参数为 输入值 ,放于函数名后口号里面,
函数内容以冒号:开始,函数体缩进, return 返回 输出值
函数调用使用关键字参数来确定传入的参数值,此时,如果多个函数则不需要按照指定顺序。
在定义函数时,指定参数默认值。调用时如果不传入参数,则使用默认值
不定长部分如果没有指定参数,传入是一个空元组
加了 两个星号 ** 的参数会以字典的形式导入
/ 用来指明函数形参必须使用指定位置参数,不能使用关键字参数的形式。
3.8版本之后的才能使用
不使用 def 定义函数,没有函数名
lamdba主体时一个表达式,而不是代码块,函数体比def简单很多
定义在函数内部的为局部变量,仅能在函数内部使用
定义在函数外部的为全局变量,可在全局使用
模块是将包含所有定义的函数和变量的文件,一般将同类功能的函数组和在一起称为模块。
模块需要导入后,在调用相应函数进行使用
模块导入的方法:
从模块中导入一个指定的部分
把一个模块的所有内容全都导入
已有字符串形式的函数名称,那么如何调用这个函数呢?
通过调用内置函数locals()和globals()返回的字典对象,就可以可以获得名称与对象的映射关系。其中,locals()仅在全局范围内调用时可以获得函数对象。 我们来看以下的例子。
需要注意的是,使用上述方法通过字符串调用函数时,为了系统的安全,防止执行任意函数,需要对函数名做一些处理,也就是使用统一的前缀为这些函数命名。例如在上述例子中,使用前缀cmd_+函数名的形式定义函数(cmd_help,cmd_sum)。
在传入函数名字符串时,只传入函数名的后半部分(如"help","sum"),由程序添加前缀后组成完整的函数名,再调用该函数。
对于类的成员函数,则可以使用getattr()获得类成员函数。
上述代码通过字符串调用了类成员函数,与前一段代码执行的结果相同。
此外,还可以使用字典将字符串与函数对应起来调用,缺点就是每增加一个函数需要相应在字典对象中添加相应的键值,增加代码维护工作量。
以上代码在Python 3.6以上运行通过。
import语句
自定义模块可以采用import语句来进行引入,其操作步骤是先导入模块,再调用模块中包含的函数,可将自定义模块放入当前目录,便于解释器路径搜索,以下是导入自定义hello.py模块,并调用World函数的实例:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
#导入模块
import hello
#现在可以调用模块里包含的函数了
support.print_func("World")
输出结果为:
Hello World!
以上实例也可以采用from…import的方法进行实现,是指从一个模块中导入指定的部分到当前命名空间中,以上功能可写成:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
from hello import World
如果要将模块中的所有内容全部导入当前命名空间,可采用from…import*的方法,具体实例如下:
#!/usr/bin/python
#-*- coding: UTF-8 -*-
from hello import *
还需注意,当要导入一个模块时,Python解释器会对模块的位置进行搜索,具体搜索顺序规律如下:
1.当前目录;
2.如果不在当前目录,Python则搜索在shell变量PYTHONPATH下的每个目录;
3.如果都找不到,Python会察看默认路径。
有什么办法省略掉那些被调用函数的参数?
也就是func2只想在调用是传入一个c。
那么func2在定义的时候必须喂饱func1,也就是func2在调用 func1时,当前作用域中要有a,b。
明显图中是没有做到的,没有实际ab
b可以试试在这个文件中直接定义 ab两个变量,那么在第三个文件中引入 func2,就可以直接传c给func2了,因为ab已经在上一步被配置好。