python错误:TypeError: 'module' object is not callable

来源:互联网 发布:淘宝网2017女装冬装 编辑:程序博客网 时间:2024/05/17 16:55

一、调用自己写的库函数

文件:quadratic.py

import math
def quadratic(a,b,c):
    x1 = float()
    x2 = float()
    if a == 0:
        if b == 0:
            if c == 0:
                print('有无穷解')
            else:
                print('无解')
        else:
            x1 = -(b/c)
            print('只有一个解,x1 = %.4f'%x1)
    else:
        det = b*b-4*a*c
        if det > 0:
            print('无实数解')
        elif det == 0:
            x1 = -(b/(2*a))
            x2 = x1
            print('有两个相同解,x1 = %.4f,x2 = %.4f'%(x1,x2))
        else:
            temp = math.sqrt(det)
            x1 = (-b + temp)/(2*a)
            x2 = (-b - temp)/(2*a)
            print('有两个解,x1 = %.4f,x2 = %.4f'%(x1,x2))



问题:

文件:text.py

import quadratic

a = 1.0
b = 2.0
c = 1.0

quadratic(a, b, c)

执行以上文件将会出现错误:TypeError: 'module' object is not callable


解决办法:

方法一: 

from datetime import datetime是只引入datetime包里的datetime类,在使用时无需添加模块名的限定

查阅了之后发现需要如下写法才能运行:(from ... import ...)

from quadratic import quadratic
a = 1.0
b = 2.0
c = 1.0
quadratic(a, b, c)

方法二:

import datetime是引入整个datetime包,如果使用datetime包中的datetime类,需要加上模块名的限定

import quadratic

a = 1.0
b = 2.0
c = 1.0

quadratic.quadratic(a, b, c)


二、文件命名影响调用原库函数

当文件命名为 ‘numpy.py’ 时,在文件内调用如下:

import numpy as npa = np.random.rand(10)print(a)




0 0
原创粉丝点击