Meilleure réponse
Vous pouvez obtenir le nom en accédant au \_\_name\_\_
attribut de la classe; et si vous avez un objet, vous pouvez obtenir la classe en accédant à lattribut \_\_class\_\_
de lobjet.
>>> class SillyClassName:
... @classmethod
... def my\_name(cls\_):
... return cls\_.\_\_name\_\_
...
... def class\_name(self):
... return self.\_\_class\_\_.\_\_name\_\_
...
>>> SillyClassName.my\_name()
SillyClassName
>>>
>>> inst = SillyClassName()
>>> inst.class\_name()
SillyClassName
Attention – si vous utilisez ceci pour accéder au nom de la classe dans une situation où vous utilisez lhéritage – alors utiliser self.\_\_class\_\_.\_\_name\_\_\_
renverra le nom de la classe dorigine, pas le classe qui contient le code.
>>> class SecondSillyClass(SillyClassName):
... pass
...
>>> inst = SecondSillyClass()
>>> SecondSillyClass.my\_name()
SecondSillyClass
>>> inst.class\_name()
SecondSillyClass
Répondre
de trois façons :
- Utilisez lopérateur in:
"orld" in "Hello World"
par exemple - Utilisez
find()
méthode:"Hello World".find("or")
– cela renvoie lindex de la sous-chaîne dans la chaîne principale – renvoie-1
lorsque la sous-chaîne nest pas dans la chaîne principale. - Utilisez la
count()
méthode"Hello World".count("or")
– cela renvoie la fréquence de la sous-chaîne est contenu dans la chaîne principale – renvoie 0 si la sous-chaîne nest pas dans la chaîne principale.
Utilisation de find () ou count () juste pour tester si une sous-chaîne est contenue dans une chaîne principale nest pas une bonne pratique, mais cela peut être fait si vous prévoyez dutiliser les informations quils fournissent pour dautres raisons.
Par exemple, faites ceci:
if substring in mainstring:
index = mainstring.find(substring)
after = maintstring[index+len(substring):]
Est en fait médiocre pratique – il serait préférable de faire ceci:
index = mainstring.find(substring)
if index != -1:
after = maintstring[index+len(substring):]