Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.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
Python 可以通过编程方式重命名类吗?_Python_Class - Fatal编程技术网

Python 可以通过编程方式重命名类吗?

Python 可以通过编程方式重命名类吗?,python,class,Python,Class,我有车辆课程。我想将其重命名为Rover。我知道我们可以创建另一个引用变量,但我不希望类的名称再相同 玩了\uuuuu name\uuuuuu,但没有成功 class Vehicle: pass st="Rover" Vehicle.__name__=st obj1=Rover() 预期: Vehicle类重命名为Rover,无需文件处理且在程序内。在评论中,您有一段(非常轻微的)引语,引自: 这为导入和重命名提供了语义 下面是实际的引用,还有一点上下文: 在Smalltalk中,类本

我有
车辆
课程。我想将其重命名为
Rover
。我知道我们可以创建另一个引用变量,但我不希望类的名称再相同

玩了
\uuuuu name\uuuuuu
,但没有成功

class Vehicle:
    pass
st="Rover"
Vehicle.__name__=st
obj1=Rover()
预期:
Vehicle
类重命名为
Rover
,无需文件处理且在程序内。

在评论中,您有一段(非常轻微的)引语,引自:

这为导入和重命名提供了语义

下面是实际的引用,还有一点上下文:

在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(...)

但是这两种方法都是允许的,使用哪种方法是一种品味问题,而不是正确性问题。

在评论中,你有一段(非常轻微的)引语:

这为导入和重命名提供了语义

下面是实际的引用,还有一点上下文:

在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(...)

但是这两种方法都是允许的,使用哪种方法是一种品味问题,而不是正确性问题。

在这里继承会更好吗?更改类的基本名称将打破许多依赖代码不?为什么要这样做?在什么情况下这样做可以节省工作?如果你解释一下上下文,我们可能会建议一个更好的选择。这听起来像是一个错误。你试图做的远远不是最佳实践。如果要更改类名,请更改代码。分配给该类的
\uuu name\uuuu
绝对不会导致引用该类的现有全局变量
Vehicle
更改其名称…在这里继承会更好吗?更改类的基本名称将打破许多依赖代码不?为什么要这样做?在什么情况下这样做可以节省工作?如果你解释一下上下文,我们可能会建议一个更好的选择。这听起来像是一个错误。你试图做的远远不是最佳实践。如果要更改类名,请更改代码。分配给该类的
\uuu name\uuu
绝对不会导致引用该类的现有全局变量
Vehicle
,若要更改其名称…
import
ing一个类并给它一个不同的本地名称,这样并不会更改实际的类对象。i、 e.
print(LibKClass.\uu name\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。另外,模块名(以及相应的文件名)应该全部是小写的(根据),因此我建议在示例代码中避免使用它们(因为这可能会给新手带来错误的想法)。@martineau:好的,我将在这里将它们重命名为
lib_k
lib_l
。我想提一下,
\uu name\uuuuuuuuu
保持不变的事实,但决定在这一点上停止。托雷克:那更好……而且你不需要提及不改变
\uuuu name\uuuuuuuuuuu
——我在下面的评论中为你做了这件事<代码>;​)
导入
对一个类进行初始化并给它一个不同的本地名称,就像这样并不会改变实际的类对象。i、 e.
print(LibKClass.\uu name\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu。另外,模块名(以及相应的文件名)应该全部是小写的(根据),因此我建议在示例代码中避免使用它们(因为这可能会给新手带来错误的想法)。@martineau:好的,我将在这里将它们重命名为
lib_k
lib_l
。我想提一下,
\uu name\uuuuuuuuu
保持不变的事实,但决定在这一点上停止。托雷克:那更好……而且你不需要提及不改变
\uuuu name\uuuuuuuuuuu
——我在下面的评论中为你做了这件事<代码>;-)