【发布时间】:2017-05-12 17:39:38
【问题描述】:
我创建了一个函数 (p_r),该函数将 print 或 return 函数的结果。
我这样做是为了运行测试。 (print 显示输出,return 将吐出值但不打印输出)。 - Python菜鸟;所以,让我知道是否有更简单的方法可以做到这一点,比如“详细”或测试关键字。我已经从事这个项目好几天了。
需要模块...
import random
变量:
yt_url = '' #url of either a video or playlist [user input]
printr_return = True
yt_url1 = 'https://youtu.be/WaGRTixwkSQ'
yt_url2 = 'https://www.youtube.com/playlist?list=PL6FhCd_HO_AD-22-Csv-vYlhLoKlAY3Zt'
功能:
#Switches between printing or returning data, depending on printr_return
#'''
def p_r (statement, printr_return):
if printr_return is True:
print (statement)
else:
return (statement)
#'''
问题:
我不明白为什么在以下函数中使用p_r 时会得到NoneType:
#Choses between the two urls above and outputs yt_url
#'''
def random_urltest (yt_url1, yt_url2):
rnt = random.choice([1,2])
if rnt == 1:
yt_url = yt_url1
if rnt == 2:
yt_url = yt_url2
p_r (yt_url, False) #-- what's wrong here?
#return yt_url #-- but this works
#'''
运行它:
yt_url = random_urltest (yt_url1, yt_url2) #returns NoneType if I use p_r
p_r ('Running test on url...%s' % (yt_url), True) #This works...
【问题讨论】:
-
编辑您的帖子以包含您收到的确切错误消息。
-
看起来你会更适合使用日志工具,比如内置的
loggingmodule。你不能编写一个代表其调用者返回的函数,并且让你的函数有条件地不返回东西似乎是一个糟糕的主意。 -
不管这个具体的例子是否有效,一个只返回或打印它接收到的参数的函数没有意义按原样。
-
什么是错误信息?
-
你没有在 random_urltest 返回任何东西!
标签: python python-2.7 function random