#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