如何解决'isinstance' 在声明 'k' 对象时采用什么参数?
class Point:
def __init__(self,x_or_obj = 0,y = 0):
if isinstance(x_or_obj,Point):
self.x = x_or_obj.x
self.y = x_or_obj.y
else:
self.x = x_or_obj
self.y = y
m = Point(1,2)
k = Point(m)
所以我很难理解为什么 isinstance
在这段代码中评估 True
。我认为 int
正在检查 class
,这对我来说毫无意义。
解决方法
看着this article about isinstance
:
如果指定的对象是指定类型,isinstance() 函数返回 True,否则返回 False。
在m
的定义中:
m = Point(1,2)
您正在传递 1
作为 x_or_obj
的值。 1
是一个整数,而不是 Point
,因此它的计算结果为 False
。
但是,在 k
的定义中:
k = Point(m)
您将 m
作为 x_or_obj
的值传递。您之前将 m
定义为类型 Point
,因此 isinstance
的计算结果为 True。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。