Могу ли я переопределить переменную в Python, используя параметры функции? - PullRequest
0 голосов
/ 03 августа 2020

Я пытаюсь создать в своей программе функцию, которая принимает параметр (строку) и удаляет знаки препинания. Вот что у меня есть:

def massreplace(x):
  global read
  global words
  x = x.replace('\n', '')
  x = x.replace(' ', '')
  x = x.replace('.', '')
  x = x.replace(',', '')
  x = x.replace('!', '')
  x = x.replace('?', '')

Параметром будет либо прочитанные переменные, либо слова. Проблема в том, что я не могу назначить переменную замене с помощью параметра. Есть ли простой способ обойти это? Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 августа 2020

Обычно внешние имена наших переменных не имеют значения внутри функции.

Таким образом, мы делаем что-то вроде:

def massreplace(x):
  x = x.replace(' ', '')
  ...
  return x

А затем мы вызываем нашу функцию, например:

read = massreplace('some words')
words = massreplace('some other words')

Это ответ на ваш вопрос, или я неправильно понимаю, что вы пытаетесь сделать?

0 голосов
/ 03 августа 2020

Вам нужно разделить лог c этой функции и самого скрипта. Например:

def massreplace(x):
    x = x.replace('\n', '')
    x = x.replace(' ', '')
    x = x.replace('.', '')
    x = x.replace(',', '')
    x = x.replace('!', '')
    x = x.replace('?', '')
    return x

if ... :
    replace_var = read
else:
    replace_var = words


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