Maison  >  Article  >  développement back-end  >  Python n'a-t-il pas d'interface ?

Python n'a-t-il pas d'interface ?

(*-*)浩
(*-*)浩original
2019-07-06 13:06:495201parcourir

L'interface ne définit que certaines méthodes mais ne les implémente pas. Elle est principalement utilisée dans la conception de programmes. Elle conçoit uniquement les fonctions nécessaires, mais n'implémente aucune fonction qui doit être héritée par une autre classe (B). . La classe B est utilisée pour implémenter une ou toutes les fonctions.

Python n'a-t-il pas d'interface ?

Python n'a pas d'interface, mais en python, les classes abstraites et les méthodes abstraites implémentent des fonctions d'interface ne peuvent pas être instanciées et ne peuvent être utilisées que par d'autres classes. héritage pour implémenter les fonctions correspondantes. (Apprentissage recommandé : Tutoriel vidéo Python)

Personnellement, je pense que les interfaces ne sont pas si importantes en python, car si vous souhaitez hériter d'une interface, vous devez ajoutez chaque méthode dedans Implémentez-les toutes, sinon une erreur de compilation sera signalée. Il est préférable de définir directement une classe dans laquelle toutes les implémentations de méthodes sont transmises et de laisser les sous-classes réécrire ces fonctions.

Bien sûr, s'il existe une exigence obligatoire selon laquelle toutes les classes d'implémentation doivent être écrites selon la définition dans l'interface, alors l'interface doit être utilisée.

Utilisez des classes abstraites et des fonctions abstraites pour implémenter des méthodes

#抽象类加抽象方法就等于面向对象编程中的接口
from abc import ABCMeta,abstractmethod
 
class interface(object):
    __metaclass__ = ABCMeta #指定这是一个抽象类
    @abstractmethod  #抽象方法
    def Lee(self):
        pass
    
    def Marlon(self):
        pass
 
class RelalizeInterfaceLee(interface):#必须实现interface中的所有函数,否则会编译错误
    def __init__(self):    
        print '这是接口interface的实现'
    def Lee(self):
        print '实现Lee功能'        
    def Marlon(self):
        pass   
 
 
class RelalizeInterfaceMarlon(interface): #必须实现interface中的所有函数,否则会编译错误
    def __init__(self):    
        print '这是接口interface的实现'
    def Lee(self):
        pass      
    def Marlon(self):
        print "实现Marlon功能"

Pour plus d'articles techniques liés à Python, veuillez visiter la colonne Tutoriel Python pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn