2010-12-09 3 views
2

Je travaillais sur des trucs de base en python dans le moteur de l'application google et j'étais incapable de trouver la bonne façon de structurer mes gestionnaires.Importer et structurer des modules/classes python

  • /main.py
  • /project/handlers/__init__.py
  • /project/handlers/AccountHandler.py

le AccountHandler est essentiellement une classe

class AccountHandler(webapp.RequestHandler): 

lors de l'utilisation de project.handlers import AccountHandler python donne toujours un

TypeError: 'module' object is not callable

comment dois-je nommer/importer/structurer mes classes?

acclamations, Martin

Répondre

6

Pour citer the docs:

A module is a file containing Python definitions and statements. The file name is the module name with the suffix .py appended.

Le AccountHandler que vous importez est le module /project/handlers/AccountHandler.py dans ce cas. Le fichier AccountHandler.py n'est pas appelable et l'interpréteur vous le dit. Pour appeler la classe que vous avez définie dans votre fichier, utilisez simplement:

from project.handlers.AccountHandler import AccountHandler 
# Alternately 
# from project.handler import AccountHandler 
# AccountHandler.AccountHandler() # will also work. 
+0

'' AccountHandler est le nom du module dans ce cas, AccountHandler.py est le nom du fichier. ' ' –

+0

* Chuckles * @Laurence - note pédante notée. Le nouveau verbiage est-il meilleur? (Et merci!) –

+0

Merci! Travaux! Comment puis-je importer des classes/gestionnaires ALl dans le module des gestionnaires? – magegu

0

Vous devez renommer init.py-__init__.py

+1

Il avait '__init __ .py'. Markdown venait juste d'interpréter les underscores comme un formatage. –

+0

Merci, je n'ai pas remarqué le formatage. – Velociraptors

Questions connexes