#python-3.x #function #if-statement
#python-3.x #функция #if-оператор
Вопрос:
elif someother_function():
Здесь проверяется, верно ли это, а также необходимо распечатать возвращаемое значение. Кто-нибудь может мне помочь с этим?
def some_function():
if correct:
return True
else:
return False
def someother_function():
if correct:
return True,f
else:
return False,None
if some_function():
print("something")
elif someother_function():
print(f)
else:
print("nothing")
Здесь, как вернуть f из someother_function туда, где он вызывается в elif?
Ответ №1:
Вы можете попробовать:
def some_function(correct):
if correct:
return False
else:
return False
def someother_function():
if correct:
return True, f
else:
return False, None
if some_function():
print("something")
elif [x := someother_function()] and x[0]:
print(x[1])
else:
print("nothing")
Комментарии:
1. Да, это помогает. Но я не могу вызвать some_other_function перед проверкой some_function() в моей исходной программе.
2. я искал что-то вроде,
elif true_or_false in (true_orfalse,f=someother_function())
.3. @ImageSchnell Или вы можете попробовать
x := someother_function(True)
, пожалуйста, взгляните на мой последний отредактированный4. раньше не видел эту кодировку, позвольте мне попробовать.
5. Извините, я не понимаю, что вы сделали.
Ответ №2:
Если вы хотите, вы можете написать класс со своими функциями и установить переменную класса с вашим выводом:
import random
class foo:
def __init__(self):
self.f=None
def some_function(self):
correct= random.choice([True, False])
if correct:
return True
else:
return False
def someother_function(self):
self.f = "something 2"
correct= random.choice([True, False])
if correct:
return True,
else:
return False,None
if __name__=="__main__":
temp = foo()
if temp.some_function():
print("something")
elif temp.someother_function():
print(temp.f)
else:
print("nothing")
Комментарии:
1. Спасибо, @Mazziotti, я искал более простые способы, думаю, я должен привлечь к этому свой класс. Я думаю, нет способа вернуть два значения в elif напрямую.
2. Возможно, решение проще, чем мы думаем
Ответ №3:
Я думаю, вам нужно указать какое-то событие. Проверьте этот код и попробуйте, если хотите:
import random
event = random.choice([True, False])
def some_function(correct):
if correct:
return True
else:
return False
def someother_function(correct):
if correct:
return True, f
else:
return False, None
if event == True:
some_function()
print("something")
elif event == False:
someother_function():
print(f)
else:
print("nothing")
Ответ №4:
Возможно, это не совсем то, что вы хотите, но вы можете превратить свою функцию в генератор.
def some_function():
return correct
def someother_function():
if correct:
yield True
yield "A"
else:
yield False
yield None
someother_function_gen = someother_function()
if some_function():
print("something")
elif next(someother_function_gen):
print(next(someother_function_gen))
else:
print("nothing")
Комментарии:
1. не удается вызвать
someother_function_gen = someother_function()
перед проверкойif some_function()
.