0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Python入门之函数属性

jf_78858299 来源:人工智能知识分享 作者:人工智能知识分享 2023-02-21 14:22 次阅读

由于函数是对象,所以函数比我们所预料的更灵活。例如,一旦我们创建一个函数,可以像往常一样调用它:


>>>def func(a):

... b = 'spam'

... return b * a

...

>>>func(8)

'spamspamspamspamspamspamspamspam'

我们也可以通用地检查它们的属性(如下代码在Python 3.0中运行,但是Python 2.6中的结果是类似的):


>>>func.__name__

'func'

>>>dir(func)

['__annotations__','__call__','__class__','__closure__','__code__',

...more omitted...

'__repr__','__setattr__','__sizeof__','__str__','__subclasshook__']

其中一些属性还提供了函数的本地变量和参数等方面的细节:


>>>func.__code__




>>>dir(func.__code__)

['__class__','__delattr__','__doc__','__eq__','__format__','__ge__',

...more omitted...

'co_argcount','co_cellvars','co_code','co_consts','co_filename',

'co_firstlineno','co_flags','co_freevars','co_kwonlyargcount','co_lnotab',

'co_name','co_names','co_nlocals','co_stacksize','co_varnames']




>>>func.__code__.co_varnames

('a','b')

>>>func.__code__.co_argcount

1

工具编写者可以利用这些信息来管理函数。

函数对象不仅限于前面列出的系统定义的属性。我们也可以向函数附加任意的用户定义的属性:


>>>func



>>>func.count = 0

>>>func.count += 1

>>>func.count

1

>>>func.handles = 'Button-Press'

>>>func.handles

'Button-Press'

>>>dir(func)

['__annotations__','__call__','__class__','__closure__','__code__',...more omitted...

__str__','__subclasshook__','count','handles']

这样的属性可以用来直接把状态信息附加到函数对象,而不必使用全局、非本地和类等其他技术。和非本地不同,这样的属性可以在函数自身的任何地方访问。从某种意义上讲,这也是模拟其他语言中的“静态本地变量”的一种方式——这种变量的名称对于一个函数来说是本地的,但是,其值在函数退出后仍然保留。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编程语言
    +关注

    关注

    10

    文章

    1916

    浏览量

    34409
  • 函数
    +关注

    关注

    3

    文章

    4243

    浏览量

    62013
  • python
    +关注

    关注

    53

    文章

    4753

    浏览量

    84117
收藏 人收藏

    评论

    相关推荐

    Python入门】SQLAlchemy的使用

    Python入门】44数据库 使用SQLAlchemy
    发表于 04-09 15:19

    深度学习入门基于python的理论与实现

    深度学习入门-基于python的理论与实现(2)
    发表于 06-19 11:22

    Python入门36常用第三方模块获取系统信息psutil

    Python入门】36常用第三方模块 获取系统信息psutil
    发表于 07-16 06:31

    Python机器学习入门pandas的使用提示

    系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助
    发表于 08-13 07:36

    python类的多态和类的property属性

    property ,其实是 Python 中一个内置的装饰器,它可以在新式类中把一个函数 改造 成属性。当你读取属性值时,会进入被 property 装饰的
    发表于 03-09 16:38

    python基础教程实例python基础入门100例程序分享

    包含了100个python入门的小例子,包括了基础语法,数据结构,控制流,类继承等基础知识的训练和,很适合入门的同学巩固基础知识。
    发表于 09-08 17:17 51次下载

    C语言入门教学函数资料总结免费下载

    本文档的主要内容详细介绍的是C语言入门教学函数资料总结免费下载内容包括了:1 库函数2 函数的定义和返回值3
    发表于 10-23 17:53 3次下载

    python入门书籍推荐

    本视频主要详细介绍了python入门书籍推荐,分别是python入门书籍推荐、笨办法学PythonPy
    的头像 发表于 12-27 16:42 3.3w次阅读

    Python经典入门教程

    Python的经典入门教程资料分享。
    发表于 06-01 10:25 116次下载

    华为开发者HarmonyOS零基础入门属性函数布局变量

    华为开发者HarmonyOS零基础入门属性函数布局变量添加播放按钮,指定框高实现具体效果。
    的头像 发表于 10-23 10:19 988次阅读
    华为开发者HarmonyOS零基础<b class='flag-5'>入门</b>:<b class='flag-5'>属性</b><b class='flag-5'>函数</b>布局变量

    Python编程入门》.pdf

    Python编程入门》.pdf
    发表于 02-11 16:03 0次下载

    简述python空类和实例属性赋值

    python类主体没有任何内容,只有pass语句,称为空类。 ## 1.2 obj.attr属性赋值 通过obj.attr=value进行类和实例属性赋值。
    的头像 发表于 02-21 10:30 926次阅读

    Python系列学习笔记函数注解

    Python 3.0中,可以给函数对象附加注解信息。这些信息会附加到函数对象的__annotations__属性。 如下是一个不带注解的函数
    的头像 发表于 02-21 10:34 563次阅读

    Python入门什么是函数

    Python函数比我们想象的更为灵活。由于Python函数是对象,所以函数对象可以赋值给其他的名字、传递给其他
    的头像 发表于 02-21 14:24 433次阅读

    Python 函数参数分类

    今天给大家分享一下自己整理的一篇 Python 参数的内容,内容非常的干,全文通过案例的形式来理解知识点,自认为比网上 80% 的文章讲的都要明白,如果你是入门不久的 python 新手,相信本篇
    的头像 发表于 10-21 10:45 550次阅读