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