如何验证python函数中行代码的输出
Posted
技术标签:
【中文标题】如何验证python函数中行代码的输出【英文标题】:How to verify outputs of line code in a python function 【发布时间】:2019-03-10 07:44:09 【问题描述】:我在下面测试了一个函数,如何验证下面函数中特定行的输出。
def data():
dev = Device(host="1.1.1.1", user="test", password="test123", port=22,
normalize=True)
dev.open()
resp = dev.rpc.get_interface_information(extensive=True)
dev.close()
for x in resp.findall(xxxxxxxxx):
if aaa
else:
没有函数 data() 我可以只输入 print(resp) 和 print(x) 来检查验证 rpc send 命令或上面的 for 循环的输出。但是,当我在函数中添加命令时,我无法执行相同的操作。在函数中,我需要验证输出的 for 循环和其他 rpc 发送命令的其他行代码很少。我在下面的 python 函数中检查代码行的特定输出....我尝试添加 data() 并在下面返回,但它没有返回任何内容
def data():
dev = Device(host="1.1.1.1", user="test", password="test123", port=22,
normalize=True)
dev.open()
resp = dev.rpc.get_interface_information(extensive=True)
return resp
dev.close()
for x in resp.findall(xxxxxxxxx):
if aaa
else:
return x
data()
这是因为我需要确保函数中使用的行代码正确且输出验证正常。请帮助并告诉我正确的方法。谢谢。
出现错误 NameError: name 'request' is not defined
def data(request):
dev = Device(host="1.1.1.1", user="test", password="test123", port=22,
normalize=True)
dev.open()
resp = dev.rpc.get_interface_information(extensive=True)
print(resp)
dev.close()
for x in resp.findall(xxxxxxxxx):
if aaa
else:
return resp
data(request)
【问题讨论】:
data()
不返回任何内容,因为您没有在函数中包含 return
statement。要比较字符串、浮点数和整数,请使用==
。要比较 python 对象的实例或类型,请查找 ìsinstance() and
type()`。但是,我不清楚您要比较哪个部分。请确保您的代码可被其他用户重现。
嗨先生..谢谢你....我通过 rpc 发送命令,这个命令行提供了一个详细信息作为响应,我在 for 循环中使用 findall 进行搜索。我在 dev.close() 行之前包含 return resp 并测试...没有生成输出...在我的终端上...
函数中只是print(resp)
- 而不是返回
它不起作用,先生......通常在函数之外......我只是使用 print() 但是在函数中它不能那样工作......
【参考方案1】:
打印语句应该在函数内部工作。我猜你是在返回后放置打印语句。在代码中,在将要执行 return 语句之后您没有提供任何内容,因为 return 语句将退出函数。当你完成所有你希望你的函数执行的任务时,确保你把 return 放在最后。
另外,一个函数中只能有一个 return 语句。如果要返回多个变量,请将它们放在一个列表中或使用类似
return a, b
然后像这样抓住它们
val_a, val_b = data()
【讨论】:
您好先生...如果函数有参数def data(req)? 这不会改变返回语句。您只需要更改调用函数的方式。val_a, val_b = data(req)
其中 req 是您想要作为参数传递的任何内容。
我用 return resp、print(resp) 和 data() 测试它 - 好的可以生成打印输出但是当我测试 return resp、print(resp) 和 data(req) - 错误 NameError:名称“req”未定义...你知道可能是什么问题吗?
你之前定义过req吗?当您调用数据函数时,req 应该是一个变量
它是 django 的 views.py 文件.. 抱歉打错了....应该是 def data(request):以上是关于如何验证python函数中行代码的输出的主要内容,如果未能解决你的问题,请参考以下文章