小编W. *_*kin的帖子

Python - isinstance() 没有像我期望的那样工作

我有一个名为 Route 的类(带有自己的 __repr__() 函数)和一个名为 default_route 的 Route 实例。但是,如果我调用 isinstance(default_route,Route),它会意外返回 False,即:

[Dbg]>>> default_route
Route(office(235)=323-654-3242)
[Dbg]>>> isinstance(default_route,Route)
False
[Dbg]>>> default_route.__class__
<class 'route.Route'>
[Dbg]>>> Route
<class 'route.Route'>
[Dbg]>>> type(default_route)
<class 'route.Route'>
[Dbg]>>> type(default_route) is Route
False
Run Code Online (Sandbox Code Playgroud)

类定义非常简单和简单:

class Route(object):
    def __init__(self, phone, condition=None):
        self.phone=phone
        self.condition=condition
        self.choice_name=None
Run Code Online (Sandbox Code Playgroud)

我只是对此感到困惑;为什么 isinstance() 不会在上面返回 True ?

python python-2.7

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

json 模块中的 object_hook 似乎没有按我的预期工作

我无法理解 json.loads() 中的 object_hook 功能实际上是如何工作的。我发现了一个类似的问题object_hook does not address the full json here,但我尝试遵循我从中理解的内容,但它仍然不适合我。我已经了解到 object_hook 函数以某种方式递归调用,但我无法理解如何使用它从 json 字符串构造复杂的对象层次结构。考虑以下 json 字符串、类和 object_hook 函数:

import json
from pprint import pprint

jstr = '{"person":{ "name": "John Doe", "age": "46", \
           "address": {"street": "4 Yawkey Way", "city": "Boston", "state": "MA"} } }'

class Address:
    def __init__(self, street=None, city=None, state=None):
        self.street = street
        self.city = city
        self.state = state

class Person:
    def __init__(self, name=None, age=None, address=None):
        self.name = name
        self.age = int(age)
        self.address = Address(**address)

def …
Run Code Online (Sandbox Code Playgroud)

python json

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

标签 统计

python ×2

json ×1

python-2.7 ×1