2016-11-29 32 views
5

Próbuję wywołać funkcję w if, zapisz wartość w zmiennej i sprawdź, czy wartość jest równa coś. Próbowałem:Definiowanie zmiennej w jeśli

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

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

Dostaję błąd składni. Czy można to zrobić?

Wracam z C i wiem, że to może działać:

#include <stdio.h> 

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

Jest to możliwe w Pythonie?

P.S. Funkcje są proste, więc łatwiej jest zrozumieć, czego chcę. Nie użyję niektórych funkcji w moim programie. Jeśli podasz mi MINUS-a, wyjaśnij to w komentarzu, aby móc w przyszłości uzyskać lepsze pytania.

+1

Prawdopodobnie lepiej powielać to specyficzne 'if' (ale te same zasady odnoszą się do wszystkich instrukcji warunkowych w Pythonie,', 'elif' if',' while', więc tej, którą połączony jako duplikat, który ma większą uwagę działa też): [Przypisuj wewnątrz instrukcji Python] (http://stackoverflow.com/q/30066516/364696) – ShadowRanger

+0

Również [Czy mogę przypisać wartość lewej strony wyrażenia Boolean (np. w pętli while) do czegoś?] (http://stackoverflow.com/q/39855895/364696). Zostało to pokryte przez _lot_. – ShadowRanger

Odpowiedz

10

Python celowo nie obsługuje tego, ponieważ szkodzi czytelności. Musi to być dwie linie.

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