有没有办法获得所有属性/方法/字段/等.Python中的对象?
vars()是接近我想要的,但它不起作用,除非一个对象有一个__dict__,这并不总是正确的(例如,它不适用于a list,a dict等).
dir(re.compile(pattern))
Run Code Online (Sandbox Code Playgroud)
不会将模式作为列表元素之一返回.即它返回:
['__copy__', '__deepcopy__', 'findall', 'finditer', 'match', 'scanner', 'search', 'split', 'sub', 'subn']
Run Code Online (Sandbox Code Playgroud)
根据手册,它应该包含
对象的属性名称,类的属性名称,以及类的基类属性的递归.
它也说
该清单未必完整.
有没有办法完成清单?我总是认为dir会返回一个完整的列表,但显然它没有......
另外:有没有办法只列出属性?还是只有方法?
编辑:这实际上是python中的一个错误 - >据说它在3.0分支中修复(也许在2.6中)
我有一个类动物,有几个属性,如:
class Animal(object):
def __init__(self):
self.legs = 2
self.name = 'Dog'
self.color= 'Spotted'
self.smell= 'Alot'
self.age = 10
self.kids = 0
#many more...
Run Code Online (Sandbox Code Playgroud)
我现在想要将所有这些属性打印到文本文件中.我现在这样做的丑陋方式就像:
animal=Animal()
output = 'legs:%d, name:%s, color:%s, smell:%s, age:%d, kids:%d' % (animal.legs, animal.name, animal.color, animal.smell, animal.age, animal.kids,)
Run Code Online (Sandbox Code Playgroud)
有更好的Pythonic方法吗?
我想得到一个类的属性,比如说:
class MyClass():
a = "12"
b = "34"
def myfunc(self):
return self.a
Run Code Online (Sandbox Code Playgroud)
使用MyClass.__dict__给我一个属性和功能的列表,甚至像__module__和的功能__doc__.虽然MyClass().__dict__我给了一个空的dict,除非我明确设置了该实例的属性值.
我只想要属性,在上面的例子中,那些将是:a和b
在Python 3,object是的实例type和type也是一个实例object!
每个类是如何从另一个派生出来的?
任何实施细节?
我使用了isinstance(sub, base)这个,根据Python文档,检查子类是否派生自基类:
isinstance(object, type)
Out[1]: True
isinstance(type, object)
Out[2]: True
Run Code Online (Sandbox Code Playgroud) python ×5
attributes ×1
class ×1
oop ×1
python-2.6 ×1
python-2.7 ×1
python-3.4 ×1
python-3.x ×1