Подчеркивает имена методов [глупая ошибка]

EDIT: Моя ошибка - было другое название метода (с подчеркиванием) в другом месте, у которого был только проход в его теле. Глупый я. Пожалуйста, закрой.

У меня есть класс с двумя методами, каждый из которых возвращает простую строку. Единственное небольшое качественное различие между этими двумя методами заключается в том, что у него есть символ подчеркивания в его названии, а другой - нет. Тем не менее, тот, с подчеркиванием, не возвращает строку при вызове. Использование подчеркиваний в названиях методов, похоже, следует PEP 8 рекомендаций относительно имен методов .

Я читал учебник Python по классам , но в нем не упоминается никаких разница в поведении зависит от использования подчеркивания внутри имени метода. Если я удалю подчеркивание, строка будет возвращена.

Что вызывает это?

Вот мой код:

class Board:
    def f(self):
        return 'Hello'
    def print_board(self):
        return 'Hello'

Я использую Python 3.2.3.

0
nl ja de
Я не могу воспроизвести его с помощью этого кода. Вызов обоих методов работает так, как ожидалось.
добавлено автор Lev Levitsky, источник
Можете ли вы опубликовать полную программу, демонстрирующую это?
добавлено автор ecatmur, источник
Извините - выяснилось, что у меня был другой метод с тем же именем, но без какого-либо кода для выполнения. Извинения за глупый вопрос.
добавлено автор 5th, источник

1 ответы

Он отлично работает для меня с Python 3.2.1 и 3.3.0:

class Board:
    def f(self):
        return 'Hello'
    def print_board(self):
        return 'Hello'


b = Board()
print(b.f())
print(b.print_board())

Выполненный в Windows, он печатает:

c:\tmp\_Python>c:/python32/python a.py
Hello
Hello

c:\tmp\_Python>c:/python33/python a.py
Hello
Hello

Возможно, вы хотели написать:

...
    def print_board(self):
        print('Hello')

и назовите его

...
b.print_board()
0
добавлено
Понимаю. Для таких случаев инструмент pylint может быть полезен. Ниже приведен вариант он-лайн antares.sip.ucm.es/cesar/pylint . Он находит также двуличие в определениях функций.
Если не ясно, да или нет, то это, вероятно, не имеет значения :) Основная цель - решить проблему, не так ли? Я не делаю это для сбора очков, но спасибо;)
добавлено автор pepr, источник
См. Мое редактирование - это была просто глупая ошибка, у меня был другой (но пустой) метод с тем же именем. Я смотрел на себя слепо, проверяя неправильную часть класса.
добавлено автор 5th, источник
Не совсем уверен, должен ли я принять ответ или нет, в конечном итоге принял его. Учитывая, что вопрос с самого начала касался несуществующей проблемы, я думаю, это должно считаться хорошим ответом :)
добавлено автор 5th, источник
Python
Python
7 654 участник(ов)

Уютный чат для профессионалов, занимающихся поиском питоньих мудростей. Как не получить бан: https://t.me/ru_python/577926

Python beginners
Python beginners
4 449 участник(ов)

Вопросы про Python для чайников. Cпам и троллинг неприемлем. Не злоупотребляйте стикерами. Частозадаваемые вопросы: https://github.com/ru-python-beginners/faq/blob/master/README.md Статистика тут: https://grstats.me/chat/x4qym2k5uvfkr3al6at7

pro.python
pro.python
1 090 участник(ов)

Сообщество разработчиков под Python Создатель: @rodgelius

Rude Python
Rude Python
971 участник(ов)

Python без „девочек”, здесь матерятся и унижают Django. Not gay friendly. Правила: t.me/rudepython/114107 @rudepython | t.me/rudepython

rupython
rupython
509 участник(ов)

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

Python-programming
Python-programming
266 участник(ов)

Чат группы вконтакте https://vk.com/python_community