Можно ли в Python использовать oop внутри функции? - PullRequest
1 голос
/ 06 апреля 2020

Я только учусь python и пытался определить функцию, используя for l oop. Код выглядит следующим образом -

def chk(hilist):
``` The function returns the output of the enumerate function as (x1,y1) (x2,y2)...
```
    for item in enumerate(hilist):
        return item

Я запустил указанную выше функцию для ввода 'string', как показано ниже -

abc = chk('string')
abc

Вывод получился как (0, с).

Если я запустил обычную функцию for, и результат будет следующим: - (0, 's') (1, 't') (2, 'r') (3, 'i') (4, 'n') (5, 'g')

Может кто-нибудь помочь мне понять, что я делаю неправильно? Заранее спасибо.

Ответы [ 3 ]

1 голос
/ 06 апреля 2020

Возврат немедленно нарушит функцию. Итак, вы должны сохранить результат в списке и вернуть его:

def chk(hilist):
    """ The function returns the output of the enumerate function as (x1,y1) (x2,y2)...
    """
    ret_list=list()

    for item in enumerate(hilist):
        ret_list.append(item)
    return ret_list
1 голос
/ 06 апреля 2020

в Python (и на всех языках программирования) использование ключевого слова return выведет вас из функции, поэтому я предлагаю два решения:

  • решение 1: сохраните свои кортежи в list, а затем вернуть сам список
  • решение 2: заменить return на yield (но если вы хотите распечатать возвращенные элементы, преобразуйте его в список, например: list(abc(some_arguments)))
0 голосов
/ 06 апреля 2020

Я думаю, что самым простым решением было бы использовать print(item), если вы хотите получить все перечисленные значения из 'строки':

def chk(hilist):
    for item in enumerate(hilist):
         print(item)

Это сработало для меня гладко.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...