方法名称中的下划线[愚蠢的错误]

时间:2013-02-07 11:35:46

标签: python-3.x python-3.2

编辑:我的错误 - 在另一个地方只有一个传递的另一个方法名称(带有下划线)。愚蠢的我。请关闭。

我有一个包含两个方法的类,每个方法返回一个简单的字符串。这两种方法之间唯一略微有质的区别在于,其名称中有一个下划线而另一个没有。但是,带有下划线的那个在调用时不会返回字符串。在方法名称中使用下划线似乎遵循PEP 8 guidelines regarding method names

我一直在仔细阅读Python tutorial on classes,但是根据方法名称中使用下划线,它没有提及任何行为上的差异。如果我删除下划线,则会返回该字符串。

造成这种情况的原因是什么?

这是我的代码:

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

我正在使用Python 3.2.3。

1 个答案:

答案 0 :(得分: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()