Beste svaret
Du kan få navnet ved å gå til \_\_name\_\_
attributt til klassen; og hvis du har et objekt, kan du få klassen ved å gå til \_\_class\_\_
-attributtet til objektet.
>>> 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
Vær oppmerksom – hvis du bruker dette for å få tilgang til klassenavnet i en situasjon der du bruker arv – vil bruk av self.\_\_class\_\_.\_\_name\_\_\_
returnere navnet på den opprinnelige klassen, ikke klasse som inneholder koden.
>>> class SecondSillyClass(SillyClassName):
... pass
...
>>> inst = SecondSillyClass()
>>> SecondSillyClass.my\_name()
SecondSillyClass
>>> inst.class\_name()
SecondSillyClass
Svar
på tre måter :
- Bruk operatoren in:
"orld" in "Hello World"
for eksempel - Bruk
find()
metode:"Hello World".find("or")
– dette returnerer indeksen til understrengen i hovedstrengen – returnerer-1
når understrengen er ikke i hovedstrengen. - Bruk
count()
-metoden"Hello World".count("or")
– dette returnerer hvor ofte understrengen er inneholdt i hovedstrengen – returnerer 0 hvis understrengen ikke er i hovedstrengen.
Bruk enten find () eller count () bare for å teste om en understreng er inneholdt i en hovedstreng er ikke god praksis, men det kan gjøres hvis du planlegger å bruke informasjonen de gir av andre grunner.
Så for eksempel – gjør dette:
if substring in mainstring:
index = mainstring.find(substring)
after = maintstring[index+len(substring):]
Er faktisk dårlig praksis – det ville være bedre å gjøre dette:
index = mainstring.find(substring)
if index != -1:
after = maintstring[index+len(substring):]