Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否可以重写python3中从对象派生的`\uuuu name`?_Python_Python 3.x_Class - Fatal编程技术网

是否可以重写python3中从对象派生的`\uuuu name`?

是否可以重写python3中从对象派生的`\uuuu name`?,python,python-3.x,class,Python,Python 3.x,Class,下面的示例适用于Python2,但不适用于Python3。Python3中有没有一种重载类的\uuu name\uu的等效方法?看 >>类Foo(对象): ... 通过 ... >>>Foo.\uuuuu name\uuuuuuuu='Bar' >>>福 Python 3.3及以上版本使用来形成类表示字符串: >>> class Foo: pass ... >>> Foo.__name__ = '__name__ for Foo' >>>

下面的示例适用于Python2,但不适用于Python3。Python3中有没有一种重载类的
\uuu name\uu
的等效方法?看

>>类Foo(对象):
...    通过
...
>>>Foo.\uuuuu name\uuuuuuuu='Bar'
>>>福
Python 3.3及以上版本使用来形成类表示字符串:

>>> class Foo: pass
...
>>> Foo.__name__ = '__name__ for Foo'
>>> Foo.__qualname__ = '__qualname__ for Foo'
>>> Foo
<class '__main__.__qualname__ for Foo'>
>类Foo:pass
...
>>>Foo.uuuu name_uuuu='uuuuuu name_uuuuuu代表Foo'
>>>Foo.\uuuuuqalname\uuuuu='\uuuuuuuuqalname\uuuuuu代表Foo'
>>>福

您可能希望同时设置
\uuuu name\uuuu
\uuuuu qualname\uuuuu
,但只有后者对您要查找的字符串输出有任何影响

谢谢你的回答!实际上,我感兴趣的是重写特定对象obj=Foo()的名称,而不是类本身。因此,为什么这个例子是在你的编辑之前陈述的。谢谢!它并没有像最初提出的那样回答我的问题(或者我只是不明白怎么回答?)。也可以重写对象obj=Foo()的名称吗?@jmc:当您在
obj.\uu class\uuu
上设置属性时,您正在
Foo
上设置属性。当您回显
obj
或打印
repr(obj)
时,将使用
repr(obj.\uuuuu class\uuuuu)
结果生成输出。虽然您可以在
Foo
上设置
\uuu name\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。这是由
\uuuuu qualname\uuuu
决定的。@jmc:如果这不能回答你问他们的问题,我真的不知道你为什么要问
\uuu name
>>> class Foo: pass
...
>>> Foo.__name__ = '__name__ for Foo'
>>> Foo.__qualname__ = '__qualname__ for Foo'
>>> Foo
<class '__main__.__qualname__ for Foo'>