Migliore risposta
Puoi ottenere il nome accedendo a \_\_name\_\_
attributo della classe; e se hai un oggetto, puoi ottenere la classe accedendo allattributo \_\_class\_\_
delloggetto.
>>> 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
Attenzione: se lo utilizzi per accedere al nome della classe in una situazione in cui stai utilizzando lereditarietà, luso di self.\_\_class\_\_.\_\_name\_\_\_
restituirà il nome della classe originale, non il classe che contiene il codice.
>>> class SecondSillyClass(SillyClassName):
... pass
...
>>> inst = SecondSillyClass()
>>> SecondSillyClass.my\_name()
SecondSillyClass
>>> inst.class\_name()
SecondSillyClass
Rispondi
tre modi :
- Utilizza loperatore “in”:
"orld" in "Hello World"
ad esempio - Utilizza
find()
metodo:"Hello World".find("or")
– restituisce lindice della sottostringa nella stringa principale – restituisce-1
quando la sottostringa non è nella stringa principale. - Utilizza il
count()
metodo"Hello World".count("or")
– questo restituisce quanto spesso la sottostringa è contenuto nella stringa principale – restituisce 0 se la sottostringa non è nella stringa principale.
Usare find () o count () solo per verificare se una sottostringa è contenuta in una stringa principale non è una buona pratica, ma può essere eseguita se prevedi di utilizzare le informazioni fornite per altri motivi.
Quindi, ad esempio, facendo questo:
if substring in mainstring:
index = mainstring.find(substring)
after = maintstring[index+len(substring):]
è effettivamente scadente pratica – sarebbe meglio farlo:
index = mainstring.find(substring)
if index != -1:
after = maintstring[index+len(substring):]