Я пытаюсь написать простую строку для создания случайной строки.
У меня есть string.py
в utils
dir со следующим кодом:
import string
import random
def generate_random_letters(str_len: int) -> str:
return ''.join(random.choice(string.ascii_letters) for _ in range(str_len))
Я попробовал этов интерактивной консоли ...
>>> from string import generate_random_letters
>>> generate_random_letters(10)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "xxx\app\utils\string.py", line 6, in generate_random_letters
return ''.join(random.choice(string.ascii_letters) for _ in range(str_len))
File "xxx\app\utils\string.py", line 6, in <genexpr>
return ''.join(random.choice(string.ascii_letters) for _ in range(str_len))
AttributeError: module 'string' has no attribute 'ascii_letters'
Я попытался изменить string.py
на strings.py
, и это работает.Таким образом, конфликтующее имя является первой причиной
Я также попытался удалить import string
и просто сделать
return ''
И это работает.Итак, это вторая причина.
Моя ЦЕЛЬ должна сделать
import app.utils.string as string_util
string_util.generate_random_letters(10)
Возможно ли это в python3.7?
Если невозможноМне определенно нужно изменить имя файла.
Но, пожалуйста, также не стесняйтесь предлагать какое-либо хорошее имя для такого конкретного случая. Однако я не думаю, что что-то из следующего является хорошим, честно говоря
_string.py
, my_string.py
, string_util.py