gpt4 book ai didi

模拟模式下的Python代码

转载 作者:行者123 更新时间:2023-11-28 21:25:22 25 4
gpt4 key购买 nike

我有一个从命令行读取输出的 python 代码:

import subprocess

def get_prg_output():
p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
return out

print get_prg_output()

在我的办公室里,我想在这种模式下模拟结果:

def get_prg_output():
return 'ok - program executed'

print get_prg_output()

有没有一种优雅的方法可以在不注释掉原始函数的情况下做到这一点?

我试过这个:

import subprocess

debug = True

if not debug:
def get_prg_output():
p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
return out
else:
def get_prg_output():
return 'ok - program executed'
print get_prg_output()

但我不喜欢。

谢谢

最佳答案

我会做这样的事情:

def _get_prg_output_real():
p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
return out

def _get_prg_output_fake():
return 'ok - program executed'

您可以在此处切换:

get_prg_output = _get_prg_output_fake

get_prg_output = _get_prg_output_real

基于用户输入、命令行参数或配置文件或注释/取消注释单行代码......

关于模拟模式下的Python代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14465183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com