inspect.getmembers(object[, predicate])
Return all the members of an object in a list of
(name, value)
pairs sorted by nam
You can dig around to find the line number for methods, not sure about other members:
import inspect
class A:
def one(self):
pass
def two(self):
pass
def three(self):
pass
def four(self):
pass
def linenumber_of_member(m):
try:
return m[1].__func__.__code__.co_firstlineno
except AttributeError:
return -1
a = A()
l = inspect.getmembers(a)
print(l)
l.sort(key=linenumber_of_member)
print(l)
prints:
[('__doc__', None), ('__module__', '__main__'), ('four', >), ('one', >), ('three', >), ('two', >)]
[('__doc__', None), ('__module__', '__main__'), ('one', >), ('two', >), ('three', >), ('four', >)]