AttributeError: module 'XXX' has no attribute 'xxx' && TypeError: 'module' object is not callable
阿新 • • 發佈:2018-11-08
AttributeError: module 'XXX' has no attribute 'xxx' && TypeError: 'module' object is not callable
最近在呼叫python的類的時候總是提示:module 'XXX' has no attribute 'xxx'很是心塞
寫一個Pet類,然後想和Java一樣,有個主函式呼叫該類,可是各種報錯
#! /usr/bin/python3 # -*- coding=UTF-8 -*- class Pet: def dog(self): pass def cat(self): pass
檔案結構如下
PetMain檔案和Pet檔案都在同一個目錄下
1.import時報錯
#! /usr/bin/python3
# -*- coding=UTF-8 -*-
import Pet
Pet.cat()
在同一個目錄下直接import Pet類時編譯就不通過:
AttributeError: module 'Pet' has no attribute 'cat'
和Java不一樣,java在同一個路徑下的檔案是可以直接訪問到的,但是python不行需要路徑去訪問:
from XXX.xxx.xx import x,此時編譯的時候就不會出錯了,但是還有問題
from com.study.test import Pet
Pet().cat()
2.執行的時候報錯
from com.study.test import Pet
Pet().cat()
路徑編譯沒有報錯,結果在執行時候又報錯
TypeError: 'module' object is not callable
原來是類初始化導致的,java初始化只要 new Pet()就可以了,但是python要
Pet.Pet()
from com.study.test import Pet
Pet.Pet().cat()
再次執行就沒有報錯了。