小编A-P*_*A-P的帖子

测试对象是另一个实例类型的子类

我有这个代码:

class Item:
    def __init__(self,a):
        self.a=a

class Sub(Item):
    def __init__(self,a,b):
        self.b=b
        Item.__init__(self,a)

class SubSub(Sub):
    def __init__(self,a,b,c):
       self.c=c
       Sub.__init__(self,a,b)

obj1=Item(1)
obj2=Sub(1,2)
obj3=SubSub(1,2,3)
Run Code Online (Sandbox Code Playgroud)

现在我要检查,如果obj2obj3是的是的子类的实例obj1,以及简单的子类Item.

以下是我的理解,我知道我可以使用isinstance()找到,如果obj2Sub.而且我知道我可以使用issubclass(Sub, Item).但是,假设我不知道上课obj2是什么.

我尝试使用,issubclass(type(obj2),Item)但这不起作用,因为type()返回一个单独的对象,我真的不明白的工作原理.这只是一个问题,虽然我认为这个问题的答案将帮助我解决我遇到的其他一些问题.

此外,我尝试使用一些特殊属性来做到这一点,__class__但我无法弄清楚如何做到这一点.

python inheritance class python-3.4

9
推荐指数
1
解决办法
1万
查看次数

制作在自身上运行其输入的函数时出现无限类型错误

我试图找出为什么这段代码没有按预期工作。

我想创建一个函数run,它将某个函数作为输入并返回应用于自身的函数。

run::(t1->t2)->t2
run a = a a
Run Code Online (Sandbox Code Playgroud)

包含的类型应该是通用的,因为我希望它适用于任何东西,但是当我尝试并且不确定为什么时,我遇到了无限的类型错误。

haskell functional-programming typeerror

2
推荐指数
1
解决办法
126
查看次数

'是什么?'符号在python中意味着什么?

我有时看到这个; 教程等上的符号,它表示什么?

python symbols

1
推荐指数
1
解决办法
282
查看次数

如何一次比较多个事物

让我们说a ='hi'

我想知道a是否是以下任何'hi','yes'或'no'我可以运行

a='hi'
a=='hi' or a=='yes' or a=='no'
>>>True
Run Code Online (Sandbox Code Playgroud)

但是,让我们说这是一个很长的可能性列表,所以我只想说

a='hi'
a==('hi' or 'yes')
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到的答案是真的但是当我做这样的事情时:

a==('yes' or 'hi')
>>>False
Run Code Online (Sandbox Code Playgroud)

然后这也很奇怪

a==('yes' and 'hi')
>>>True
Run Code Online (Sandbox Code Playgroud)

但如果我再次切换它们

a==('hi' and 'yes')
>>>False
Run Code Online (Sandbox Code Playgroud)

有人可以解释这里发生的事情

python operator-precedence

0
推荐指数
1
解决办法
92
查看次数