gpt4 book ai didi

Python:是否可以修改内置函数属性的可写性?

转载 作者:行者123 更新时间:2023-12-04 16:58:49 26 4
gpt4 key购买 nike

假设我想改变 print的名字,所以我会通过 pr('string') 调用它(并释放 print )。

print.__setattr__('__name__', 'pr')
AttributeError: attribute '__name__' of 'builtin_function_or_method' objects is not writable
是否可以修改这种可写性?
编辑:
我知道可以随意更改函数指针,例如
pr = print
但是,我对修改属性的可能性感兴趣。
这里没有真正的上下文,我想更多地了解基本属性。不过,在我的脑海中,人们可能会想象将命名空间翻译为 i18n 的工作:
builtin_functions = [name for name, obj in vars(builtins).items() 
if isinstance(obj, types.BuiltinFunctionType)]
for f in builtin_functions:
f.__setattr__('__name__', i18n_function(__getattribute__('__name__')))

最佳答案

您可以分配 print到不同的变量:

def whatever(text: str):
pass

pr = print
print = whatever

pr("printing")
print("won't be printed")
只输出 printing .

关于Python:是否可以修改内置函数属性的可写性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67437499/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com