首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如果我更改函数的__name__,会发生什么情况

如果我更改函数的__name__,会发生什么情况
EN

Stack Overflow用户
提问于 2018-05-31 17:08:49
回答 1查看 339关注 0票数 2

我是python的初学者。我了解到一个函数具有名为__name____qualname__的属性,并且它们是可写的。

我更改了namequalname的值。例如,

代码语言:javascript
复制
def person(name):
print(name)

person.__name__ = 'man'
person.__qualname__ = 'man'

然后我试着打电话给man('jessi'),翻译报告name 'man' is not defined

所以我的问题是,更改__name__的值有什么意义

无论如何,先谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2018-05-31 17:12:25

更改__name__的值会更改函数的表示形式,而不是其功能。请注意:

代码语言:javascript
复制
>>> def person(name):
...     print(name)
... 
>>> person.__name__
'person'
>>> print(person)
<function person at 0x10030bc08>
>>> person.__name__ = 'man'
>>> print(person)
<function man at 0x10030bc08>

请注意,这只发生在Python2.7中-在Python3中,您将使用.__qualname__。同样的行为也会发生在__qualname__

代码语言:javascript
复制
>>> def person(name):
...     def child():
...             return 'Hello child of ' + name
...     return child
>>> result = person("Me!")
>>> print(result)
<function person.<locals>.child at 0x103b45048>
>>> result.__qualname__
'person.<locals>.child'
>>> result.__name__
'child'
>>> result.__qualname__ = 'new qualname result'
>>> result.__qualname__
'new qualname result'
>>> print(result)
<function new qualname result at 0x101bb6e18>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50620594

复制
相关文章

相似问题

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