2016-11-29 2 views
5

Я пытаюсь вызвать функцию в if, сохранить значение в переменной и проверить, равно ли это значение. Пытались:Определение переменной в if

def funk(): 
    return ("Some text") 

msg="" 
if (msg=funk()) == "Some resut": 
    print ("Result 1") 

Я получаю ошибку синтаксиса. Это можно сделать?

я происхожу из C, и я знаю, что это может работать:

#include <stdio.h> 

char funk() 
{ 
    return 'a'; 
} 
int main() 
{ 
    char a; 
    if(a=funk() == 'a') 
     printf("Hello, World!\n"); 
    return 0; 
} 

Возможно ли это в Python?

P.S. Функции просты, поэтому легче понять, чего я хочу. Я не буду использовать некоторые функции в своей программе. Если вы дадите мне МИНУС, пожалуйста, объясните в комментарии, чтобы я мог задавать более подробные вопросы в будущем.

+1

Возможно лучше дублировать это специфичное для 'if' (но одни и те же правила применяются ко всем условным в Python,' if', '' elif', while', поэтому один я связан как дубликат, который имеет больше внимания также работает): [Назначить внутри оператора if Python] (http://stackoverflow.com/q/30066516/364696) – ShadowRanger

+0

Также [Могу ли я назначить значение левой части логического выражения (например, в цикле while) что-то?] (http://stackoverflow.com/q/39855895/364696). Это было покрыто _lot_. – ShadowRanger

ответ

10

Python намеренно не поддерживает его, потому что он болит в удобочитаемости. Это должно быть две линии.

msg = funk() 
if msg == "Some result": 
    print("Result 1") 
Смежные вопросы