Melhor resposta
Você pode obter o nome acessando \_\_name\_\_ atributo da classe; e se você tiver um objeto, poderá obter a classe acessando o atributo \_\_class\_\_ do objeto.
>>> 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
Cuidado – se você usar isso para acessar o nome da classe em uma situação onde você está usando herança – então, usar self.\_\_class\_\_.\_\_name\_\_\_ retornará o nome da classe original, não o classe que contém o código.
>>> class SecondSillyClass(SillyClassName):
... pass
...
>>> inst = SecondSillyClass()
>>> SecondSillyClass.my\_name()
SecondSillyClass
>>> inst.class\_name()
SecondSillyClass
Resposta
três maneiras :
- Use o operador in:
"orld" in "Hello World"por exemplo - Use o
find()método:"Hello World".find("or")– retorna o índice da string secundária na string principal – retorna-1quando a string secundária não está na string principal. - Use o
count()método"Hello World".count("or")– retorna a freqüência com que a sub string está contido na string principal – retorna 0 se a substring não está na string principal.
Usando find () ou count () apenas para testar se uma substring está contida em uma string principal não é uma boa prática, mas pode ser feito se você estiver planejando usar as informações fornecidas por outros motivos.
Então, por exemplo – fazer isto:
if substring in mainstring:
index = mainstring.find(substring)
after = maintstring[index+len(substring):]
É realmente ruim prática – seria melhor fazer isso:
index = mainstring.find(substring)
if index != -1:
after = maintstring[index+len(substring):]