Python - вызов функции по условию - PullRequest
0 голосов
/ 09 ноября 2018

Мне было интересно, есть ли краткий способ вызова функции при условии.

У меня есть это:

if list_1 != []:
    some_dataframe_df = myfunction()

Мне интересно, возможно ли это с помощью троичного оператора или чего-то подобного.

Если я сделаю

(some_dataframe_df = myfunction()) if list_1 != [] else pass

Это не работает.

Ответы [ 3 ]

0 голосов
/ 09 ноября 2018

Использование pass кажется плохой идеей в троичном операторе, тем более что вы можете встроить одно выражение if.

Если вас не беспокоит, что ваш список None, вы можете сократить тест, чтобы просто использовать логическое значение самого списка. Это имеет то преимущество, что допускает любую нормальную последовательность, а не только списки.

В общем, вы могли бы сделать что-то вроде:

if list_1: some_dataframe_df = myfunction()
0 голосов
/ 09 ноября 2018

В троичном операторе условные обозначения являются выражением, а не выражением. Следовательно, вы не можете использовать pass, и обычный if оператор, который вы использовали, является правильным.

0 голосов
/ 09 ноября 2018

Ваш код в порядке. Единственное изменение, которое я предлагаю, это использовать присущую Истине непустые списки:

if list_1:
    some_dataframe_df = myfunction()

Если вы хотите использовать троичное выражение, оно будет записано как:

some_dataframe_df = myfunction() if list_1 else some_dataframe_df

Однако, это не кратко и не читабельно.

...