2017-12-21 11 views
0

Ich habe eine Python-Datei mit dem Namen Pqr.py, die eine Klasse enthält, die eine statische Methode enthält.Rufen Sie eine statische Methode aus einer anderen Klasse in Python

Jetzt versuche ich auf diese statische Methode von einer anderen Klasse zugreifen, die in anderen Python-Datei ist. Beide .py-Dateien befinden sich im selben Verzeichnis. Der Code in der zweiten Datei,

import Pqr 

class Rst: 
    Pqr.callTheService("a", "b", "c") 

Wenn ich versuche, dies zu laufen, bekomme ich einen Fehler von Attribute: Modul ‚PQR‘ hat kein Attribut ‚callTheService‘

Können Sie mir bitte helfen lösen dieser Fehler?

+0

ist Ihre Datei namens 'Pqr.py'? Sie müssen auf die * Klasse * nicht auf das Modul zugreifen, verwenden Sie daher 'Pqr.Pqr.callTheService'. In Python geben Sie dem Modul im Allgemeinen nicht den gleichen Namen wie eine Klasse (Python! = Java). BTW, das wäre offensichtlicher gewesen, wenn Sie Python-Namenskonventionen folgen. Im Allgemeinen verwenden Sie 'lower_case' für Modulnamen und vermeiden' camelCase' um jeden Preis! –

+0

Hier finden Sie den Link zum [Style Guide for Python Code] (https://www.python.org/dev/peps/pep-0008/). – Matthias

+0

Wow, @ juanpa.arrivillaga Du hast mein Problem innerhalb von Minuten gelöst! Danke vielmals. – swarupmishal

Antwort

0

Ich löste das Problem beim Lesen der Kommentare. Ich habe die Klasse in das Modul importiert. Hier ist der Beispielarbeitscode.

from Pqr import Pqr 

class Rst: 
    Pqr.callTheService("a", "b", "c") 
+1

Sie sollten Ihr Modul wahrscheinlich umbenennen. Ich bin nicht sicher, was du meinst "Ich importierte die Datei anstelle des gesamten Moduls", aber es klingt nicht korrekt. –

+0

@ juanpa.arrivillaga Entschuldigung, ich bin neu bei Python, jetzt durch die Dokumentation, die du mit mir geteilt hast. – swarupmishal

Verwandte Themen