Bästa svaret
Du kan få namnet genom att öppna \_\_name\_\_ klassens attribut; och om du har ett objekt kan du få klassen genom att gå till \_\_class\_\_ attributet för 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
Var uppmärksam – om du använder detta för att komma åt klassnamnet i en situation där du använder arv – då kommer self.\_\_class\_\_.\_\_name\_\_\_ att returnera namnet på den ursprungliga klassen, inte klass som innehåller koden.
>>> class SecondSillyClass(SillyClassName):
... pass
...
>>> inst = SecondSillyClass()
>>> SecondSillyClass.my\_name()
SecondSillyClass
>>> inst.class\_name()
SecondSillyClass
Svara
tre sätt :
- Använd operatören in:
"orld" in "Hello World"till exempel - Använd
find()method:"Hello World".find("or")– detta returnerar index för understrängen i huvudsträngen – returnerar-1när understrängen finns inte i huvudsträngen. - Använd
count()-metoden"Hello World".count("or")– detta returnerar hur ofta understrängen finns i huvudsträngen – returnerar 0 om understrängen inte finns i huvudsträngen.
Använd antingen find () eller count () bara för att testa om en substring finns i en huvudsträng är inte bra praxis, men det kan göras om du planerar att använda den information de tillhandahåller av andra skäl.
Så till exempel – gör detta:
if substring in mainstring:
index = mainstring.find(substring)
after = maintstring[index+len(substring):]
Är faktiskt dålig öva – det skulle vara bättre att göra detta:
index = mainstring.find(substring)
if index != -1:
after = maintstring[index+len(substring):]