一文搞懂python的内建函数,自己添加一个print函数

举报
香菜聊游戏 发表于 2021/10/24 09:42:49 2021/10/24
【摘要】 写python的同学应该都用过print函数,这个函数我们没有定义为什么可以调用?答案就是因为 print 是内建函数,python的内建函数式都是常用的工具函数,也是系统内置的函数,今天就说下内建函数,结合例子看下,废话不多说,开始1、什么是内建函数?python内建函数指的是python自带的函数,这种函数不需要定义,并且不同的内建函数具有不同的功能,可以直接使用。#!/usr/bin/...

写python的同学应该都用过print函数,这个函数我们没有定义为什么可以调用?

答案就是因为 print 是内建函数,python的内建函数式都是常用的工具函数,也是系统内置的函数,今天就说下内建函数,结合例子看下,废话不多说,开始

1、什么是内建函数?

python内建函数指的是python自带的函数,这种函数不需要定义,并且不同的内建函数具有不同的功能,可以直接使用。

#!/usr/bin/python2.6
# -*- coding: utf-8 -*-
import builtins
def test():
    print("dsada")
if __name__ == '__main__':
    #   增加内建函数
    builtins.__dict__["testFunc"] = test
    testFunc()
    pass
复制代码

2、内置的内建函数多有哪些?

官方的文档说明链接:docs.python.org/3.9/library…

这里我截图了函数,可以做一个概览,看名字也能猜出这些函数都是做什么的

对上面的函数进行分组:

数学类:sum(),pow(),sum(),round()

随机类:choice(),random(),seed(),shuffle(),uniform()

数字类:abs(),min(),max(),divmod(),ascii()

系统类:xxxattr,xxxmethod,

数据类型:set(),map(),tuple(),list(),bool(),int(),str(),

综合类:其他的可以归于此类

3、特殊函数说明

3.1 exec

格式:exec obj

obj对象可以是字符串(如单一语句、语句块),文件对象,也可以是已经由compile预编译过的代码对象。

举个例子

    exec( "print('香菜')")
复制代码

3.2 eval

格式:eval( obj[, globals=globals(), locals=locals()] )

obj可以是字符串对象或者已经由compile编译过的代码对象。globals和locals是可选的,分别代表了全局和局部名称空间中的对象,其中globals必须是字典,而locals是任意的映射对象。

x = 3
print(eval('3*x'))
​
复制代码

输出结果是9 ,eval 可以引用上下文

3.3 compile

格式:compile( str, file, type )

compile语句是从type类型(包括’eval’: 配合eval使用,’single’: 配合单一语句的exec使用,’exec’: 配合多语句的exec使用)中将str里面的语句创建成代码对象。file是代码存放的地方,通常为”。

compile语句的目的是提供一次性的字节码编译,就不用在以后的每次调用中重新进行编译了。

compile()函数将string编译为代码对象,编译生成的代码对象接下来被exec语句执行,接着能利用eval()函数对其进行求值。filename参数应是代码从其中读出的文件名。如果内部生成文件名,filename参数值应是相应的标识符。kind参数指定string参数中所含代码的类别

3.4 globals和locals

globals()会以字典类型返回当前位置的全部全局变量。

locals()以字典类型返回当前位置的全部局部变量。

对于函数, 方法, lambda 函式, 类, 以及实现了 call 方法的类实例, 它都返回 True。

4、自己增加一个内置函数

在开发过程有些函数经常调用,但是每次都要导包什么的还挺麻烦的,就想着能不能把某几个工具函数加入到内建函数,只要有问题,其他人就会有同样的问题,其实解决的办法很简单,就是在builtins 中dict中添加函数就可以了,下面是个例子:

#!/usr/bin/env python
# encoding: utf-8
​
"""
#Author: 香菜
@time: 2021/10/10 0010 下午 10:22
"""
import builtins
def test():
    print("dsada")
if __name__ == '__main__':
    #   增加内建函数
    builtins.__dict__["testFunc"] = test
    testFunc()
    pass
​
复制代码

5、总结

python的内置函数并没有什么特殊的,只不过是系统提供的一些工具方法,实现也都很简单,记住这些常用的工具方法,在开发中一定可以事半功倍,



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。