繁体   English   中英

Python:更改类名

[英]Python: Changing the class name

在Python中,我正在制作一个图形类,打算通过创建一个Node类来设计该图形类,然后创建一个Edge类,该Edge类将两个节点(源和目标)作为构造函数的参数。 我还想在Edge类中检查两个输入实际上是Nodes,所以我想添加一些行,例如

assert type(src) is Node and type(tgt) is Node

但是,这将不符合我的预期。 据我了解,我需要使用类似src.__name__ is Node.__name__但这看起来很丑。 有没有一种方法可以控制用户定义的类的类型名称,以使代码读起来更好一些?

我尝试遵循在这里找到的一些内容: Python:更改类类型名称

并写了代码

class Node: 
    ...
    __class__ = type("Node", (type,), {})

我不确定是否是错误地应用了在该链接中找到的课程,或者这些课程不能完成我想做的事情-但一种或另一种方式,它没有达到我希望的状态。

查看“ isinstance ”内置函数: https : //docs.python.org/2/library/functions.html#isinstance

例:

>>> class Node(object):
...   pass
... 
>>> class Booger(object):  
...   pass
... 
>>> n=Node()
>>> b=Booger()
>>> isinstance(n, Node)
True
>>> isinstance(b, Node)
False
>>> 
>>> class SubNode(Node):
...   pass
... 
>>> sn=SubNode()
>>> isinstance(sn, Node)
True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM