Bedste svar
Du kan få navnet ved at få adgang til \_\_name\_\_
attribut for klassen; og hvis du har et objekt, kan du få klassen ved at få adgang til \_\_class\_\_
-attributten for 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
Pas på – hvis du bruger dette til at få adgang til klassens navn i en situation, hvor du bruger arv – så vil self.\_\_class\_\_.\_\_name\_\_\_
returnere navnet på den oprindelige klasse, ikke klasse, der indeholder koden.
>>> class SecondSillyClass(SillyClassName):
... pass
...
>>> inst = SecondSillyClass()
>>> SecondSillyClass.my\_name()
SecondSillyClass
>>> inst.class\_name()
SecondSillyClass
Svar
tre måder :
- Brug operatoren in:
"orld" in "Hello World"
for eksempel - Brug
find()
metode:"Hello World".find("or")
– dette returnerer indekset for understrengen i hovedstrengen – returnerer-1
når understrengen findes ikke i hovedstrengen. - Brug
count()
-metoden"Hello World".count("or")
– dette returnerer, hvor ofte understrengen er indeholdt i hovedstrengen – returnerer 0, hvis understrengen ikke er i hovedstrengen.
Brug enten find () eller count () bare for at teste, om en substring er indeholdt i en hovedstreng er ikke god praksis, men det kan gøres, hvis du planlægger at bruge de oplysninger, de leverer af andre grunde.
Så for eksempel – gø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 at gøre dette:
index = mainstring.find(substring)
if index != -1:
after = maintstring[index+len(substring):]