首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python的isinstance

使用Python的isinstance
EN

Stack Overflow用户
提问于 2009-10-05 18:25:58
回答 1查看 1.8K关注 0票数 1

isinstance的以下用法在Python2.5.2或2.6.2中似乎不起作用:

代码语言:javascript
复制
class BananaCake:
    def __init__(self):
        print 'Banana Cake'

class ChocolateCake:
    def __init__(self):
        print 'Chocolate Cake'

class CakeFactory:
    @staticmethod
    def create(name):
        if name == 'banana':
            return BananaCake
        elif name == 'chocolate':
            return ChocolateCake
        else:
            return None

if __name__ == '__main__':
    banana_cake = CakeFactory.create('banana')
    print isinstance(banana_cake, BananaCake)

上面的isinstance返回False,即使banana_cake是BananaCake的一个实例。有人知道我可能会错过什么吗?我在我的测试脚本中执行这个检查。您应该能够复制和粘贴上面的代码,并在Python脚本中轻松运行它。

EN

回答 1

Stack Overflow用户

发布于 2009-10-05 18:35:50

这是因为'banana_cake‘不是BananaCake的实例。

CakeFactory实现返回BananaCake类,而不是BananaCake的实例。

尝试修改CakeFactory以返回"BananaCake()“。调用BananCake构造函数将返回一个实例,而不是类。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1521655

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档