目录
一、报错信息:
二、报错代码:
1、一个简单的生成随机数的代码:
2、代码编写的过程:
三、报错的原因:
1、没有搞清楚导入的是模块,还是方法:
2、其他类似的情况:
一、报错信息:
AttributeError: 'builtin_function_or_method' object has no attribute 'randint'
翻译:AttributeError:“内置函数”或“方法”对象没有属性“randint”
二、报错代码:
1、一个简单的生成随机数的代码:
from random import random
print(random.randint(1,5))
2、代码编写的过程:
当时,自己想测试一下random.randint(),感觉自己很熟悉这个函数,就没有导入random模块,vscode自动给补充的导入库,自动导入了from random import random。正常的话,我自己会这样导入import random。
import random
print(random.randint(1,5))
这样的话就不会报错,并且会产生一个随机数。
三、报错的原因:
1、没有搞清楚导入的是模块,还是方法:
- from random import random:仅将random模块下定义的random()方法导进来, 也就是仅仅可以使用random()这一个方法,所以直接调用random()方法没有报错, 但是调用random模块下的其他方法就会报错,所以调用randint方法时报错。
- import random?:导入的是整个random模块,random模块下所有方法都可以调用。
- 如果不想让它报错, 可以使用from random import *, 即将random模块中的所有方法都导进来, 自然包括random()方法和randint()方法,此时你再单独使用randint()方法自然不会报错。
from random import *
print(randint(1,5))
print(random())
如果是这样使用方法:random.randint(),那么必须要import random,这样导入整个库。如果是from random import random 或者是 from random import random导入的是方法,再这样使用就会报错。?
2、其他类似的情况:
报错信息:'builtin_function_or_method' object has no attribute 'sleep'
使用 time.sleep(n) 挂起函数时,遇到这个错误。
原因:使用导入是 from time import *
解决:导入换成 import time
|