TypeError: 'module' object is not callable


TypeError: 'module' object is not callable

Person.py

"""
類的定義
"""
class Person:
    # 構造方法
    def __init__(self, n, a, u):
        # global name, age
        self.name = n
        self.age = a
        self.url = u

    # 普通方法
    def print_info(self):
        print('url={},name={},age={}'.format(self.url, self.name, self.age))


if __name__ == '__main__':
    person = Person('Tom', 100, 'www.baidu.com')
    person2 = Person('Jerry', 200, 'www.google.cn')
    person.print_info()
    person2.print_info()

# url=www.baidu.com,name=Tom,age=100
# url=www.google.cn,name=Jerry,age=200

object_to_json.py

"""
對象轉化為json
"""
import json
import Person


def to_json():
    # 初始化person對象
    person = Person('Tom', 100, 'www.baidu.com')
    print('person對象--->', person)

    # 將person對象轉化為dict
    person_dict = person.__dict__
    print('person對象轉化為dict--->', person_dict)

    # 將dict轉化為json
    person_json = json.dumps(person_dict)
    print('dict轉化為json', person_json)


if __name__ == '__main__':
    to_json()

運行object_to_json.py時報錯:

Traceback (most recent call last):

File "E:/PycharmProjects/pythonProject/類/object_to_json.py", line 26, in <module>

to_json()

File "E:/PycharmProjects/pythonProject/類/object_to_json.py", line 13, in to_json

person = Person('Tom', 100, 'www.baidu.com')

TypeError: 'module' object is not callable

原因:模塊不可用,是因為導入的模塊或者實例化對象有問題。

解決方法:

第一種:import Person導入的是Person這個模塊(具體來說是Person.py這個文件),但不是Person這個類,所以在實例化Person對象的時候需要加上模塊名限定。

import Person

...

person = Person.Person('Tom', 100, 'www.baidu.com')

...

第二種:導入Person模塊的Person類,直接實例化Person對象即可。

from Person import Person

...

person = Person('Tom', 100, 'www.baidu.com')

...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM