我有Vehicle
类。我想将其重命名为Rover
。我知道我们可以创建另一个引用变量,但是我不希望类的名称相同。
玩过__name__
,但没有成功。
class Vehicle:
pass
st="Rover"
Vehicle.__name__=st
obj1=Rover()
预期:
Vehicle
类已重命名为Rover
,无需文件处理且在程序内。
答案 0 :(得分:2)
在评论中,您引述了https://docs.python.org/3/tutorial/classes.html(非常轻微):
这提供了导入和重命名的语义
这是实际的报价,还有更多上下文:
在Smalltalk中,类本身就是对象。这提供了导入和重命名的语义。
这是在说我们可以拥有一个Python库,并且该库中有一个类:
# lib_k.py
class Klass:
... definitions ...
然后,在其他Python模块中,我们可以编写:
from lib_k import Klass as LibKClass
如果我们也要做的话,这主要是有用的:
from lib_l import Klass as LibLClass
然后编写如下代码:
def f(args):
obj_k = LibKClass(...)
obj_l = LibLClass(...)
我个人更喜欢写:
import lib_k
import lib_l
def f(args):
obj_k = lib_k.Klass(...)
obj_l = lib_l.Klass(...)
但是两种方式都是允许的,使用哪种方式只是出于品味的问题,而不是正确性。