Maison >développement back-end >Tutoriel Python >Partage de matériel vidéo orienté objet Python
L'orientation objet est une idée très courante dans les langages de programmation actuels. Python a une très bonne implémentation de l'orientation objet. Dans le même temps, grâce à la syntaxe flexible de Python, certaines fonctionnalités intéressantes orientées objet peuvent être obtenues.
Python est depuis le début un langage orienté objet. De ce fait, il est facile de créer des classes et des objets en Python. Dans ce chapitre, nous présenterons en détail la programmation orientée objet en Python.
Si vous n'avez jamais été exposé aux langages de programmation orientés objet auparavant, vous devrez peut-être d'abord comprendre certaines fonctionnalités de base des langages orientés objet et former un concept de base orienté objet dans votre esprit, ce qui vous aidera à apprendre facilement la programmation orientée objet en Python.
Ensuite, comprenons brièvement quelques caractéristiques de base de l'orientation objet.
Ce qui est difficile à apprendre dans l'orientation objet, ce ne sont pas les concepts et autres points de connaissance, mais la manière de penser orientée objet :
Les bases les idées orientées objet sont l'encapsulation, l'héritage et le polymorphisme.
Le premier est l'héritage :
Définir une classe :
Le code est le suivant :
class Bird(object): have_feather = True way_of_reproduction = 'egg'
Appeler cette classe :
Le code est le suivant :
summer = Bird() print summer.way_of_reproduction
Contrairement à Java, Python ne nécessite pas de new pour instancier une classe.
De même, les classes Python peuvent définir les méthodes ci-dessous :
Le code est le suivant :
class Bird(object): have_feather = True way_of_reproduction = 'egg' def say(self, word='hi hi'): print 'i say :' + word
Notez que toutes les fonctions de classe doivent avoir au moins Il y a un paramètre, et ce paramètre doit être self.
Les fonctions en dehors de la classe n'ont pas cette restriction.
Le code est le suivant :
chk = Chicken() print chk.have_feather print chk.sat('hello')
Méthode __init__()
__init__() est une méthode spéciale. Il y aura des méthodes spéciales en Python, et Python les gérera d'une manière spéciale. Les noms de méthodes spéciales sont caractérisés par deux traits de soulignement avant et après eux. La particularité de la méthode
__init__() est que si vous définissez cette méthode dans une classe, Python appellera automatiquement cette méthode une fois que vous aurez créé un objet basé sur cette classe (ce processus est également appelé initialisation).
Par exemple :
Le code est le suivant :
class happyBird(Bird): def __init__(self,more_words): print 'We are happy birds.',more_words hb = happyBird('Happy,Happy!')
Surcharge de la méthode de la classe parent :
Le code est la suivante :
class Hello(object): name = 'hello' def __init__(self): self.name='my name is hello' #类中的参数必须带有self参数 def sayhi(self): print 'hi you' class World(Hello): def __init__(self): #这里访问的是父类初始化的变量名 print 'before:',Hello.name super(World,self).__init__() #由于调用了父类的初始化构造函数,继承了父类的变量的改变 print 'after:',self.name #近似于方法重载 def sayhi(self,word='baby'): #调用父类sayhi方法 super(World,self).sayhi() print 'hi '+word def sayWorld(self): print 'hi,hello world' if __name__ == '__main__': c = World() c.sayhi() c.sayWorld()
De plus, python permet l'héritage multiple, mais c'est une opération très dangereuse et il est recommandé de ne pas l'utiliser avec désinvolture.
Concernant le polymorphisme de Python, tout comme JavaScript, vous pouvez accéder directement aux propriétés de l'objet sans utiliser d'interfaces et sans conversion de type.
Pour le jugement de type, il existe notre fonction type() et notre fonction isinstance() pour juger s'il s'agit d'une sous-classe d'une certaine fonction.
Copiez le code comme suit :
isinstance(object, classinfo)
Jugez si l'instance est cette classe ou si l'objet est une variable
classinfo est un type (tuple,dict,int,float)
Jugez si la variable est de ce type
Le code est le suivant :
class objA: pass A = objA() B = 'a','v' C = 'a string' print isinstance(A, objA) print isinstance(B, tuple) print isinstance(C, basestring)
Résultat de sortie :
Vrai
Vrai
Vrai
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!