Как узнать из списка методов, какие из них были определены в этом классе, а какие были унаследованы? - PullRequest
2 голосов
/ 15 января 2011

Как узнать из списка методов, какие были определены в этом классе, а какие были унаследованы?Например.у меня есть банковский модуль, который имеет два класса, BankAccount и транзакции.Transcations наследуется от BankAccount

>>> dir(bank.BankAccount) 
[ 'chk', 'interest']
>>> dir(bank.Transcations) 
[ 'chk', 'deposit', 'interest', 'withdraw']

как мне проверить, что методы 'chk' и 'Interest' унаследованы и можно ли определить, от какого класса они были унаследованы?

Ответы [ 2 ]

3 голосов
/ 15 января 2011
>>> class BankAccount(object):
...     def deposit(self):
...             pass
...     def account_no(self):
...             pass
... 
>>> class Transaction(BankAccount):
...     def withdrawal(self):
...             pass
... 
>>> Transaction.__dict__.keys()
['__module__', '__doc__', 'withdrawal']
>>> BankAccount.__dict__.keys()
['__module__', 'deposit', '__dict__', '__weakref__', '__doc__', 'account_no']
2 голосов
/ 15 января 2011

Вы можете проверить bank.Transactions.__dict__.keys()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...