首页 > 试题广场 >

有如下类定义,下列描述错误的是? class A(obje

[单选题]
有如下类定义,下列描述错误的是?
class A(object):
    pass

class B(A):
    pass

b = B()


  • isinstance(b, A) == True
  • isinstance(b, object) == True
  • issubclass(B, A) == True
  • issubclass(b, B) == True
abc isinstance(object,classinfo),用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True. issubclass(class,classinfo),用于判断class是否是classinfo类的子类,如果是返回True.
发表于 2018-07-13 13:04:07 回复(2)
新式类:class 类(object基类)
继承类:class 子类(父类1[,父类2,父类3])#在继承元组中列了一个以上的类,那么它就被称作"多重继承" 
class A(object):#新式类,相当于A继承object基类
pass

class B(A):#B类继承A类
pass

b = B()#实例化
发表于 2018-09-01 22:06:17 回复(3)
b = B() #实例化,所以b是B 的实例,而不是子类,所以D
编辑于 2018-03-03 17:16:20 回复(1)
isinstance() 函数来判断一个对象是否是一个已知的类型。
isinstance(object, classinfo)
参数:
  • object -- 实例对象。
  • classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。
如果对象的类型与参数二的类型(classinfo)相同则返回 True,否则返回 False。

issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。
issubclass(class, classinfo) 
  • 参数:
  • class -- 类。
  • classinfo -- 类。 
  • 如果 class 是 classinfo 的子类返回 True,否则返回 False。

发表于 2019-03-11 22:59:32 回复(0)
发表于 2018-11-20 21:20:02 回复(1)
C选项,issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类,B是A的子类,所以为True
发表于 2018-03-05 21:28:58 回复(0)
正确答案:abc isinstance(object,classinfo),用于判断object是否是classinfo的一个实例,或者object是否是classinfo类的子类的一个实例,如果是返回True. issubclass(class,classinfo),用于判断class是否是classinfo类的子类,如果是返回True.
发表于 2018-03-12 17:40:27 回复(1)

isinstance() 与 type() 区别:

  • type() 不会认为子类是一种父类类型,不考虑继承关系。

  • isinstance() 会认为子类是一种父类类型,考虑继承关系。

如果要判断两个类型是否相同推荐使用 isinstance()。

class A(object):
    pass
class B(A):
    pass
b = B() 
print(isinstance(b,A))  # True
print(isinstance(b,B))  # True
print(type(b) is B) # True
print(type(b) is A) # False
print(issubclass(B,A)) # True
print(issubclass(b,B))    # TypeError: issubclass() arg 1 must be a class
发表于 2020-07-19 18:54:46 回复(0)
都给看成实例判断了。。。isinstance(a, A)是判断a是否为A的实例。issubclass(A, B)是判断A是否为B的子类。二者均返回bool值
发表于 2019-03-05 17:17:20 回复(1)
链接:https://www.nowcoder.com/questionTerminal/2294726301554b1da45dbe5fb87cc9cc
来源:牛客网

issubclass(b,B)判断参数b是否是类型参数B的子类
isinstance(object,classinfo)判断一个对象是否是一个已知的类型,类似type();
isinstance()和type()的区别:
    isinstance()考虑继承关系
    type()不考虑继承关系
  • object -- 实例对象。
  • classinfo -- 可以是直接或间接类名、基本类型或者由它们组成的元组。

编辑于 2019-09-10 11:28:55 回复(0)
A也对,isinstance会考虑继承关系,会认为子类是一种父类类型
发表于 2018-08-08 08:56:17 回复(0)
classB(A):classB继承classA的方法和属性
b=B()是把classB的实例赋值给b,即b是classB的子类
发表于 2022-03-11 17:44:03 回复(0)

语法:

isinstance(object, classinfo)

如果参数object是classinfo的实例,或者object是classinfo类的子类的一个实例, 返回True。如果object不是一个给定类型的的对象, 则返回结果总是False。

语法:issubclass(sub, super)

检查sub类是否是 super 类的派生类(子类),是则为True。


发表于 2019-02-23 11:23:46 回复(1)
isinstance(object,classinfo)用于判断object是否为classinfo的一个实例,或是其子类的一个实例 issubclass(class,classinfo)用于判断class是否是classinfo类的子类
发表于 2022-09-07 22:38:40 回复(0)

1.isinstance() 函数来判断一个对象是否是一个已知的类型,类似 type()。

  • isinstance() 与 type() 区别:
    • type() 不会认为子类是一种父类类型,不考虑继承关系。
    • isinstance() 会认为子类是一种父类类型,考虑继承关系。
  • 如果要判断两个类型是否相同推荐使用 isinstance()。

2.issubclass() 方法用于判断参数 class 是否是类型参数 classinfo 的子类。

发表于 2022-04-18 15:31:32 回复(0)
class A(object):  pass  class B(A): pass  b = B() print(isinstance(b,B)) #True print(issubclass(B,A)) #True print(issubclass(b,B))#Error 会报错!

所以这道题的答案是错的
发表于 2019-05-24 21:14:15 回复(0)
D
发表于 2018-03-22 01:09:45 回复(0)
不就应该选c吗?
发表于 2018-03-01 23:43:38 回复(1)
>>> class A(object):
...     pass
...
>>> class B(A):
...     pass
...
>>> b = B()
>>> isinstance(b, object)
True
>>> isinstance(b, B)
True
>>> isinstance(b, A)
True
>>> issubclass(b, A)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: issubclass() arg 1 must be a class
>>> issubclass(b, B)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: issubclass() arg 1 must be a class
>>> issubclass(A, B)
False
>>> issubclass(B, A)
True
>>>
发表于 2023-11-15 13:54:25 回复(0)
D选项,issubclass的参数只能是元类或者类,不能是一个对象
发表于 2023-10-27 09:52:26 回复(0)