I Python , funktioner tjänar som en grund för alla komplexa projekt . Bruket av prototyper funktioner , eller förklara dem innan definiera dem , har funnits sedan uppfinningen av programspråket C . Inte alla språk beter sig på samma sätt . Även språk som C kräver oftast funktion prototyper , språk som Python inte. I själva verket har Python ingen verklig mekanism för att stödja prototyper . Detta beror på det sätt Python hanterar funktioner . Funktioner
Funktioner är kodblock som ges ett namn och minne av kompilatorn eller tolken av programmet . Ungefär som en matematisk funktion , programmering funktioner tar argument i form av variabler , på vilka de utför en uppgift och producera några resultat . Hjälpfunktioner programmerare i det skapats en gång , kan programmeraren fortsätta att kalla den samma funktion under ett program genom att bara använda sitt namn och levererar lämpliga argument .
Funktionsprototyper
i programspråket C , definierar funktioner i ett program kräver en viss ordning . Efter " förprocessorn " kommandon som inkluderar externa bibliotek och definiera makron , måste programmeraren förklara " prototyp " av varje funktion som används i programmet , med undantag för "main " -funktion . Prototypen berättar C-kompilatorn att avsätta minne för en funktion med definitionen på prototypen .
Framåtreferens
Eftersom C-program använder prototyper som en del av deras syntax , C-funktioner i ett program är ofta " framåt referera , " vilket betyder att funktioner som används i programmet kommer inte att fastställas förrän efter programkoden . I huvudsak innebär Framåtreferens att kompilatorn kommer att möjliggöra genomförandet av en funktion , i förståelsen att funktionen kommer att definieras senare i programmet . Eftersom C använder prototyping , är uppgifter som brukar definieras inte förrän efter huvudprogrammet , vilket innebär att alla funktioner framåt refererar . Och Addera Python Framåtreferens
Pythons tolk tillåter inte funktion prototyper . Den " def " kommandot i Python fungerar som ett kommando för att skapa en funktion . Detta innebär att funktionen skapas på plats . Tolken godtar inte att en funktion " kommer att " definieras i någon gång i framtiden . Det enda som Pythontolk letar efter är när funktionen ska användas . Till exempel kommer det första samtalet att fungera " foo " fungerar inte , eftersom " foo " inte har definierats . Det andra samtalet i serie A , eftersom ett föremål av klass A kommer att skapas efter foo förklaras :
foo ( ) //framåt referera
klass A : def __ init__ ( egen) : foo ( ) katalog
def foo ( ) : print " Hej "
a = A ( ) //inte framåt referera Addera