首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:函数名前面有点的函数中的变量

python:函数名前面有点的函数中的变量
EN

Stack Overflow用户
提问于 2018-04-04 11:15:55
回答 1查看 5.1K关注 0票数 4

我需要理解这个概念,我们可以使用点(.)在函数定义中的变量名中。这里没有类定义,也没有模块,Python不应该接受包含点的变量名。

代码语言:javascript
复制
def f(x):
    f.author = 'sunder'
    f.language = 'Python'
    print(x,f.author,f.language)

f(5)
`>>> 5 sunder Python`

请解释这是如何可能的,并提出相关文件供进一步探索。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-04 14:44:46

来自官方文档

程序员注意:函数是一流的对象.在函数定义中执行的“def”语句定义了可以返回或传递的本地函数。嵌套函数中使用的空闲变量可以访问包含def的函数的局部变量。

因此,函数是一个对象:

代码语言:javascript
复制
>>> f.__class__
<class 'function'>
>>> f.__class__.__mro__
(<class 'function'>, <class 'object'>)

..。这意味着它可以存储属性:

代码语言:javascript
复制
>>> f.__dict__
{'language': 'Python', 'author': 'sunder'}
 >>> dir(f)
['__annotations__', '__call__', '__class__', '__closure__', '__code__', '__defaults__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__get__', '__getattribute__', '__globals__', '__gt__', '__hash__', '__init__', '__kwdefaults__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__qualname__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', 'author', 'language']
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49649588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档