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-1
nä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):]