【发布时间】:2015-12-29 23:43:46
【问题描述】:
对于上下文,我将使用提示此问题的示例,即 Scikit-Bio 的 DNA 序列类。
基类是一个通用的python序列类。序列类从该类继承特定核酸(DNA、RNA ...)的序列。最后,还有一个继承自 Sequence 的 DNA 类,它强制执行特定的 DNA 字母表。
所以下面的代码列出了一个 DNA 对象的所有属性。
from skbio import DNA
d = DNA('ACTGACTG')
for attr in dir(d):
# All the attributes of d.
如何找到每个属性属于哪个父类?之所以对这个感兴趣,是因为我在翻源码,希望能够知道在哪个文件中能找到每一个想看的方法。
我能想到的最好的是这样的:
for attr in dir(d)
print type(attr)
但这只是返回所有字符串类型(我猜 dir() 返回一个字符串列表)。
如何在 python 中实现这一点?是否有内在的理由根本不尝试这样做?还是这在 OOP 中经常出现?
【问题讨论】:
-
类的
__mro__属性是其基的元组,在m方法r解决方案o中rder,如果那是你所追求的。您可以按如下方式找到一个类的文件:stackoverflow.com/a/697395/3001761 -
一旦你有一份你感兴趣的事情的清单,你可能会更好地使用 grep。
-
@KamilSokołowski 不完全是,这就是一旦你拥有类本身后如何获取文件
-
对于您的最终代码片段,请尝试
for attr in dir(d): print type(getattr(d, attr))。
标签: python