<p>@Aplet123激励着我</p>
<pre><code>from typing import List
import json
def extended_type(obj, buffer_list: List = None):
if buffer_list is None:
buffer_list = []
buffer_list.append(f"<class '{type(obj).__name__}'>")
if hasattr(obj, '__iter__') and not isinstance(obj, str):
sub_buf = []
for item in (obj.values() if isinstance(obj, dict) else obj):
extended_type(item, sub_buf)
if sub_buf:
buffer_list.append(sub_buf)
return buffer_list
</code></pre>
<h2>试验</h2>
<pre><code>def my_func():
...
class CC:
...
data_type_info: List = extended_type([(1, 'a'),
[1, [2, '5', [2, 'a', CC()]]],
{'a': 0, 1: 2, 'b': 's', 'l': [3, 'four']},
my_func])
result: str = json.dumps(data_type_info, indent=2, sort_keys=True)
print(result)
</code></pre>
<h2>输出</h2>
<pre><code>[
"<class 'list'>",
[
"<class 'tuple'>",
[
"<class 'int'>",
"<class 'str'>"
],
"<class 'list'>",
[
"<class 'int'>",
"<class 'list'>",
[
"<class 'int'>",
"<class 'str'>",
"<class 'list'>",
[
"<class 'int'>",
"<class 'str'>",
"<class 'CC'>"
]
]
],
"<class 'dict'>",
[
"<class 'int'>",
"<class 'int'>",
"<class 'str'>",
"<class 'list'>",
[
"<class 'int'>",
"<class 'str'>"
]
],
"<class 'function'>"
]
]
</code></pre>