Gibt es eine Möglichkeit für Python, zu benachrichtigen, dass Sie eine nicht vorhandene Methode überschreiben?Java

Java-Forum
Anonymous
 Gibt es eine Möglichkeit für Python, zu benachrichtigen, dass Sie eine nicht vorhandene Methode überschreiben?

Post by Anonymous »

In Java gibt es abstrakte Klassen und Schnittstellen, in denen wir eine Reihe von Methoden deklarieren, die für konforme Objekte existieren, wenn sie mit Implementierungen dieses Typs interagieren

Code: Select all

abstract class Foo {
abstract void fooMethod();
}
interface Bar {
void barMethod();
}
und so weiter. Wenn sie implementiert werden, fügen wir normalerweise eine Anmerkung hinzu, dass die Methode in der Klasse nicht von der aktuellen Klasse namens @Override stammt, was genau darauf hinweist. Dies dient auch als Schutz für den Compiler, um sicherzustellen, dass die Methode tatsächlich in der Basisklasse vorhanden ist, denn wenn dies nicht der Fall ist, schlägt der Compiler fehl.

Code: Select all

public class FooImpl { // note this does not have "extends Foo" as defined by above
@Override
void fooMethod() {

}
}

Code: Select all

javac FooImpl.java
FooImpl.java:9: error: method does not override or implement a method from a supertype
@Override
^
1 error
Bisher definiere ich in Python 3.14 meine abstrakten Klassen mit dem abc-Modul wie folgt

Code: Select all

class Foo(abc.ABC):
@abc.abstractmethod
def fooMethod(self):
...
class FooImpl(Foo): # bogus impl
def fooMethod(self):
pass
Aber ich hätte gerne eine Möglichkeit zu deklarieren, dass diese Methode vererbt wird, und eine Möglichkeit, der Python-Laufzeitumgebung mitzuteilen, dass die Methode in der Basisklasse vorhanden sein muss (da sie später möglicherweise entfernt wird). Gibt es ein Äquivalent in Python 3.14 und höher?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post