[英]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.