2017-08-29 6 views
0
bank 
    __init__.py 
    Account.py 
    SavingAccount.py 
main.py 

La classe SavingAccount hérite de Account (classe abstraite). Lorsque SavingAccount d'importation main.py comme ci-dessous:Python, module de module d'importation lorsque la classe hérite de la classe abstraite

de SavingAccount importation bank.SavingAccount

Il semble "Aucun module nommé« compte". Quelqu'un pourrait-il savoir comment le résoudre?

Le code d'erreur complète dans la fenêtre de sortie comme ci-dessous:

Traceback (most recent call last): 
    File "main.py", line 5, in <module> 
    from bank.SavingAccount import SavingAccount 
    File "\bank\SavingAccount.py", line 1, in <module> 
    from Account import Account 
ModuleNotFoundError: No module named 'Account' 

Acccount.py

from abc import ABCMeta,abstractmethod 
class Account(metaclass=ABCMeta): 
    _id = 0 
    _name = '' 
    _balance = 0 
    __next = 0 

    def __init__(self,name,initBal = 1000): 
     self._name=name; 
     self._balance = initBal 

SavingAccount.py

from Account import Account 
class SavingAccount(Account): 
    _interestRate = 0 

    def __init__(self,name,initBal=0): 
     super(SavingAccount,self).__init__(name,initBal) 

    @classmethod 
    def interestRate(cls): 
     _interestRate = 0 

    @classmethod 
    def interestRate(cls,rate): 
     cls._interestRate = rate 
+0

Python 2 ou Python 3? Si vous souhaitez importer des sous-modules frères du même package, vous devez le faire soit par importation absolue, soit par importation relative * explicite. – user2357112

+0

Python3 avec Pycharm –

Répondre

1

Vous devez changer

from Account import Account 

à

from .Account import Account 

Cette dernière approche relative des importations est recommandé dans un package.