擅长:python、mysql、java
<p>您可以使用<a href="https://docs.python.org/3/library/inspect.html" rel="nofollow noreferrer">^{<cd1>}</a>模块获取实例的所有非方法属性</p>
<pre><code>>>> import inspect
>>> from operator import itemgetter
>>> b = 5
>>> inspect.getmembers(b, lambda a:not(inspect.isroutine(a)))
</code></pre>
<p>将生成<code>b</code>的所有属性及其小描述的长列表。你知道吗</p>
<p>我做了一些测试,看看它是如何工作的,下面是我的发现</p>
<pre><code>>>> def get_attrs(x):
return list(map(itemgetter(0), inspect.getmembers(x, lambda a:not(inspect.isroutine(a)))))
>>> "__dict__" in get_attrs(type(b))
>>> False
>>> l = [1,2,3]
>>> "__dict__" in get_attr(type(l))
>>> False
>>> class A:
pass
>>> a = A()
>>> "__dict__" in get_attr(type(a))
>>> True
</code></pre>