0

编辑:我的错误 - 在另一个地方有另一个方法名称(带下划线),它的主体只有一个通道。愚蠢的我。请关闭。

我有一个有两个方法的类,每个方法都返回一个简单的字符串。这两种方法之间唯一的细微差别是,一种方法的名称带有下划线,而另一种则没有。但是,带有下划线的那个在调用时不返回字符串。在方法名称中使用下划线似乎遵循PEP 8 关于方法名称的准则

我一直在彻底阅读有关类的 Python 教程,但它没有提到行为上的任何差异,具体取决于方法名称中下划线的使用。如果我删除下划线,将返回字符串。

这是什么原因造成的?

这是我的代码:

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

我正在使用 Python 3.2.3。

4

1 回答 1

0

它适用于我的 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()
于 2013-02-07T11:44:27.123 回答