这些结构中哪个更好?
which of these structure is better?
我在 python 从事一个项目,我想过用两种方式编写相同的代码,但我想知道哪种结构在性能、语义和最佳实践方面更好。
version 1
if x == 1:
try:
order = cliente.order_market_buy(
symbol = moeda,
quoteOrderQty=quantidade)
print(f'buy {order}')
except Exception as erro:
print(erro.status_code)
print(erro.response)
print(erro.code)
print(erro.message)
print(erro.request)
if erro.code == -2010:
print('no money')
elif x == -1:
try:
order = cliente.order_market_sell(
symbol = moeda,
quantity=quantidade)
print(f'sell {order}')
except Exception as erro:
print(erro.status_code)
print(erro.response)
print(erro.code)
print(erro.message)
print(erro.request)
if erro.code == -2010:
print('no crypto')
version 2
try:
if x == 1:
order = cliente.order_market_buy(
symbol = moeda,
quoteOrderQty=quantidade)
print(f'buy {order}')
elif x == -1:
order = cliente.order_market_sell(
symbol = moeda,
quantity=quantidade)
print(f'sell {order}')
except Exception as erro:
print(erro.status_code)
print(erro.response)
print(erro.code)
print(erro.message)
print(erro.request)
if erro.code == -2010:
if x == 1:
print('no money')
elif x == -1:
print('no crypto')
两种代码做同样的事情,但是,第一种最容易调试,第二种更小更简洁。
两者花费相同的时间到达 运行.
还有其他更好的写法吗?
如果它在所有情况下都做大致相同的事情,那么在 IMO 中最好有一个异常块。以下是避免重复 if x
检查的方法:
try:
if x == 1:
currency = "money"
order = cliente.order_market_buy(
symbol=moeda,
quoteOrderQty=quantidade
)
print(f'buy {order}')
elif x == -1:
currency = "crypto"
order = cliente.order_market_sell(
symbol=moeda,
quantity=quantidade
)
print(f'sell {order}')
except Exception as erro:
print(erro.status_code)
print(erro.response)
print(erro.code)
print(erro.message)
print(erro.request)
print(f'no {currency}')
我在 python 从事一个项目,我想过用两种方式编写相同的代码,但我想知道哪种结构在性能、语义和最佳实践方面更好。
version 1
if x == 1:
try:
order = cliente.order_market_buy(
symbol = moeda,
quoteOrderQty=quantidade)
print(f'buy {order}')
except Exception as erro:
print(erro.status_code)
print(erro.response)
print(erro.code)
print(erro.message)
print(erro.request)
if erro.code == -2010:
print('no money')
elif x == -1:
try:
order = cliente.order_market_sell(
symbol = moeda,
quantity=quantidade)
print(f'sell {order}')
except Exception as erro:
print(erro.status_code)
print(erro.response)
print(erro.code)
print(erro.message)
print(erro.request)
if erro.code == -2010:
print('no crypto')
version 2
try:
if x == 1:
order = cliente.order_market_buy(
symbol = moeda,
quoteOrderQty=quantidade)
print(f'buy {order}')
elif x == -1:
order = cliente.order_market_sell(
symbol = moeda,
quantity=quantidade)
print(f'sell {order}')
except Exception as erro:
print(erro.status_code)
print(erro.response)
print(erro.code)
print(erro.message)
print(erro.request)
if erro.code == -2010:
if x == 1:
print('no money')
elif x == -1:
print('no crypto')
两种代码做同样的事情,但是,第一种最容易调试,第二种更小更简洁。 两者花费相同的时间到达 运行.
还有其他更好的写法吗?
如果它在所有情况下都做大致相同的事情,那么在 IMO 中最好有一个异常块。以下是避免重复 if x
检查的方法:
try:
if x == 1:
currency = "money"
order = cliente.order_market_buy(
symbol=moeda,
quoteOrderQty=quantidade
)
print(f'buy {order}')
elif x == -1:
currency = "crypto"
order = cliente.order_market_sell(
symbol=moeda,
quantity=quantidade
)
print(f'sell {order}')
except Exception as erro:
print(erro.status_code)
print(erro.response)
print(erro.code)
print(erro.message)
print(erro.request)
print(f'no {currency}')