python怎么调用类中的函数_类中的python函数调用

通过阅读您的评论,您的实际问题似乎是:您有一个方法可以打印一些输出。如果用户调用代码,那么您希望将输出打印到终端。如果代码由另一个方法在内部调用,则不希望输出被打印。在

@mgilson建议的debug参数是一个不错的选择,但是您希望用户不知道这个选项,无论出于什么原因。在

另一种方法是在函数调用期间创建一个函数包装器来重定向stdout,然后再恢复它。像这样:import os

import sys

def suppress_print(f, *args, **kwargs):

"""Call the function f, but print to the null device

instead of the screen."""

old_stdout = sys.stdout

sys.stdout = open(os.devnull, 'w')

result = f(*args, **kwargs)

sys.stdout = old_stdout

return result

class Foo:

def bar(self):

print "This is a test."

return 42

def baz(self):

return suppress_print(self.bar)

foo = Foo()

# this should print to the terminal

foo.bar()

# this shouldn't

foo.baz()

然后,无论何时在内部调用函数,都要用suppress_print对其进行包装,输出将被压缩。请注意,这实际上是一个使用上下文管理器的好地方,但我将把它作为进一步的练习。。。在


版权声明:本文为weixin_31199791原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。