Paras vastaus
Voit saada nimen avaamalla \_\_name\_\_
luokan attribuutti; ja jos sinulla on objekti, voit saada luokan avaamalla objektin \_\_class\_\_
-määritteen.
>>> 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
Varo – jos käytät tätä luokan luokkaan pääsemiseen tilanteessa, jossa käytät perintöä, niin self.\_\_class\_\_.\_\_name\_\_\_
-toiminnon palauttaminen palauttaa alkuperäisen luokan nimen, ei luokka, joka sisältää koodin.
>>> class SecondSillyClass(SillyClassName):
... pass
...
>>> inst = SecondSillyClass()
>>> SecondSillyClass.my\_name()
SecondSillyClass
>>> inst.class\_name()
SecondSillyClass
Vastaa
kolmella tavalla :
- Käytä in -operaattoria:
"orld" in "Hello World"
esimerkiksi - Käytä
find()
method:"Hello World".find("or")
– tämä palauttaa päämerkkijonon alimerkkijonon indeksin – palauttaa-1
, kun alimerkkijono ei ole päämerkkijonossa. - Käytä
count()
-menetelmää"Hello World".count("or")
– tämä palauttaa alimerkkijonon sisältyy päämerkkijonoon – palauttaa 0, jos alimerkkijono ei ole päämerkkijonossa.
Käytä joko find () – tai count () -ominaisuutta vain testataksesi, onko alimerkkijono päämerkkijonossa ei ole hyvä käytäntö, mutta se voidaan tehdä, jos aiot käyttää heidän toimittamiaan tietoja muista syistä.
Joten esimerkiksi – näin:
if substring in mainstring:
index = mainstring.find(substring)
after = maintstring[index+len(substring):]
On todella huono käytäntö – olisi parempi tehdä tämä:
index = mainstring.find(substring)
if index != -1:
after = maintstring[index+len(substring):]