Beste antwoord
Je kunt de naam krijgen door naar de \_\_name\_\_
attribuut van de klasse; en als je een object hebt, kun je de klasse krijgen door naar het \_\_class\_\_
-attribuut van het object te gaan.
>>> 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
Pas op – als u dit gebruikt om toegang te krijgen tot de klassenaam in een situatie waarin u overerving gebruikt, zal het gebruik van self.\_\_class\_\_.\_\_name\_\_\_
de naam van de oorspronkelijke klasse teruggeven, niet de klasse die de code bevat.
>>> class SecondSillyClass(SillyClassName):
... pass
...
>>> inst = SecondSillyClass()
>>> SecondSillyClass.my\_name()
SecondSillyClass
>>> inst.class\_name()
SecondSillyClass
Antwoord
drie manieren :
- Gebruik de in-operator:
"orld" in "Hello World"
bijvoorbeeld - Gebruik de
find()
methode:"Hello World".find("or")
– dit geeft de index van de subtekenreeks in de hoofdreeks terug – geeft-1
terug als de subtekenreeks staat niet in de hoofdreeks. - Gebruik de
count()
methode"Hello World".count("or")
– dit geeft terug hoe vaak de subtekenreeks bevindt zich in de hoofdreeks – geeft 0 terug als de subtekenreeks niet in de hoofdreeks staat.
Met behulp van find () of count () alleen om te testen of een substring aanwezig is in een hoofdreeks is geen goede gewoonte, maar het kan worden gedaan als u van plan bent de informatie die ze verstrekken om andere redenen te gebruiken.
Dus bijvoorbeeld – dit doen:
if substring in mainstring:
index = mainstring.find(substring)
after = maintstring[index+len(substring):]
Is eigenlijk slecht oefenen – het zou beter zijn om dit te doen:
index = mainstring.find(substring)
if index != -1:
after = maintstring[index+len(substring):]