Что означают эти сообщения, когда метод был неправильно вызван в Python

#python #methods

Вопрос:

   2 import argparse
  3 
  4 baseline = {'music': 'bach', 'art': 'rembrandt'}
  5 myfault = baseline.copy
  6 print (myfault)
  7 
  8 parser = argparse.ArgumentParser()
  9 myfault = parser.add_argument
 10 print(myfault)
 

Это приводит к появлению следующих сообщений:

 <built-in method copy of dict object at 0x7ff5c61f75a0>
<bound method _ActionsContainer.add_argument of ArgumentParser(prog...
 

Я несколько раз попадал в тупик из-за этих опечаток, когда я отбрасывал родителей и полученные сообщения.

Насколько я понимаю, myfault-это указатель на экземпляр метода ? И он печатает то, на что указывает?

Каков был бы смысл этого синтаксиса?

Комментарии:

1. Печать это не очень полезно, но составление словаря функций для последующего вызова может быть очень полезным

2. Этот метод не был вызван неправильно. Это вообще не называлось. Результатом является объект метода, сопоставимый с указателем функции в C . При печати вы получаете описание объекта метода: имя ( add_argument ) и класс, к которому он принадлежит ( ArgumentParser ). Польза в том, что вы можете прочитать его как разработчик.

3. если вы используете его с print() , то он печатает информацию об этой функции — но более полезным является то, что вы можете отправить ее в качестве аргумента другой функции — и некоторые функции могут использовать это. т. е. вы можете отправить функцию в sort() , max() , min() и dataframe.apply() pandas ) или назначить кнопку в GUI