Ich habe eine Funktion, die eine Klasse zurückgeben und ich es als ein Objekt speichern. Wenn ich versuche, auf einer Klassenmethode aufrufen werde ich den FehlerTypeError: 'int' Objekt ist nicht aufrufbar beim Aufruf einer Klassenfunktion
location = file_type.route(env['REQUEST_URI']) # Get the location
TypeError: 'int' object is not callable
I Name auf das Objekt geändert haben, um sicherzustellen, dass es keine Namens Kollision ist.
In der ersten Zeile rufe ich die Methode get_file_type in der Modulroute auf.
file_type = route.get_file_type(env['REQUEST_URI']) # Get File_type object
location = file_type.route(env['REQUEST_URI']) # Get the location
Wenn ich die file_type auszudrucken ich Ausgang <route.File_type instance at 0x7f96e3e90950>
ich die FILE_TYPE Klassen in einem Wörterbuch speichern und das Verfahren get_file_type eine FILE_TYPE liefert basierend auf der Anforderung.
path = {'html' : File_type('html', 1, 1),
'css' : File_type('css', 1, 0),
'ttf' : File_type('ttf', 0, 0),
}
def get_file_type(request): # return a File_type object
extension = request.rsplit('.', 1)[-1]
if extension in path:
return path[extension]
return path['html']
FILE_TYPE Klasse
class File_type:
def __init__(self, type_, parse, route):
self.type_ = type_
self.parse = parse
self.route = route
def route(resource):
if self.route == 1:
for pattern, value in routes:
if re.search(pattern, resource):
return value
return None
else:
return resource.rsplit('.', 1)[0][1:]
Bitte geben Sie ein [minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve) an. Sie haben nicht einmal angezeigt, in welcher Zeile der Fehler auftritt, und auch nicht unbedingt den Code, der den Fehler verursacht. Lesen Sie diese Seite und bearbeiten Sie Ihren Post entsprechend. –
Wenn Sie einen 'File_type' initialisieren, überschreibt das Attribut' route' die Funktion 'route', so dass Sie sie nicht aufrufen können. Gib ihnen verschiedene Namen –
@PatrickHaugh Danke das Problem gelöst – Olof