我正在尝试编写一个简单的字符串 util 来生成随机字符串。
我string.py
在utils
目录中有以下代码:
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
当然!
请注意,每个目录级别都需要这些init .py 文件。
我的 string.py 代码与你的匹配:
import string
import random
def generate_random_letters(str_len: int) -> str:
return ''.join(random.choice(string.ascii_letters) for _ in range(str_len))
我的 aa_test_me.py 代码:
import app.utils.string as string_util
print (string_util.generate_random_letters(10))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句