Jag kan förmodligen inte förklara det bättre än de sidor du redan läst på, men jag försöker beskriva det kortfattat och enkelt. För det är enkelt
En funktion eller en metod använder return för att kunna kommunicera någon form av resultat tillbaka till anroparen av funktionen. Det finns inte alltid någon poäng att göra det. T.ex. om det är en enkel funktion som i teorin inte kan misslyckas.
Om man har en funktion eller metod connect(addr, port) så kan man tänka sig att den returnerar ett connectionobjekt om den lyckas, och inget om den misslyckas (värdet None, return None). Men i Python är det nog vanligast att man kastar ett exception om något misslyckas.
Om det är en funktion som beräknar något, så kan man använda return för att skicka tillbaka resultatet av uträkningen. Funktioner behöver inte (uttryckligen) returnera något i Python vad jag vet.
Instansvariabler är variabler knutna till en instans. Varje instans av en klass får sin egen uppsättning av de instansvariabler som klassen definierar. Enkelt exempel: Tänk dig en klass Person med instansvariabeln name. Varje instans av klassen kommer att kunna ha ett eget värde på name-variabeln, vilket är lämpligt för en sån klass.
Om du fortfarande inte förstår, säg till. Fast då kanske någon annan får försöka.
Ett tips är att du experimenterar lite själv, med både return och instansvariabler. Det behöver inte ta lång tid.