Мне было интересно, есть ли способ в Python (2.6) получить только имя свойств, которыми обладает экземпляр.
Допустим, у меня есть:
#!/usr/bin/python2.6
class MyClass(object):
def __init__(self):
self._x = None
@property
def x(self):
return self._x
@x.setter
def x(self, value):
print "Setting x to %s" % (value)
try:
self._x = int(value)
except ValueError:
self._x = None
#main (test area)
if __name__ == '__main__':
a = MyClass()
a.x = "5"
print str(a.x)
print "Vars: %s" %vars(a)
print "Dir: %s" %dir(a)
Какие выходные данные:
Vars: {'_x': 5}
Dir: ['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_x', 'x']
Есть ли команда, аналогичная "vars" или "dir", или такая, которая дала бы мне только "x"?
Если нет, то что вы, ребята, рекомендуете делать?Пройдите по клавише «vars» и удалите «_», которое появляется перед «_x»?
Заранее спасибо!