Statiske funksjoner i Python

Pythons objektorientert struktur lar programmerere å lage avanserte programmer, men noen ganger er det enklere å jobbe med en funksjon uten forekomster en klasse objekt. Python lar deg lagre funksjoner i import class filer, men utpeke dem som en "statisk" funksjon slik at du kan kalle det uten å opprette et objekt.

funksjoner

En nybegynner Python programmerer har en tendens til å produsere det som er kjent som «spaghetti-kode." Han skriver ut all koden for et program, men det er repeterende, uorganiserte, og vanskelig å redigere eller vedlikeholde. Som han lærer mer om programmering, begynner han å bruke funksjoner, også kjent som metoder, for å bedre organisere koden. Hver funksjon inneholder kildekoden er nødvendig for å utføre et bestemt sett av operasjoner. Hver gang du trenger å utføre det segmentet av koden, kan du bruke navnet på funksjonen som du opprettet.

klasser

Python organiserer sin kildekoden til datastrukturer som kalles klasser. Hver klasse kan inneholde en rekke enkeltfunksjoner. Klasser kan enten brukes som et sett av planer for Python å konstruere selvstendig fungerende objekter, eller som en beholder for metoder som du bruker ofte. Ved å sette metodene i en egen kildekode fil i sin egen klasse, kan du importere den koden inn i prosjektet med en enkelt linje.

Klasse Versus Statisk

Funksjonene innsiden av en klasse kan enten være statiske funksjoner eller klasse funksjoner. For å bruke en klasse funksjon, må du instantiate et objekt av klassen, og kaller metoden gjennom selve objektet. Statiske funksjoner krever ikke at du å lage et objekt av klassen for å ringe og utføre dem.

Making Statisk Funksjon

Som standard funksjoner innsiden av class filer er klasse funksjoner. Ved å skrive ut "@staticmethod" på linjen over en funksjon erklæring, kan du konvertere den til en statisk metode. Ingen andre syntaktiske forskjeller er tilgjengelige for å erklære en statisk funksjon i motsetning til å erklære en klasse funksjon. Du kan utføre en statisk funksjon ved hjelp av syntaksen "classname.function ()" hvor "klassenavn" er navnet på den klassen der funksjonen ligger, og "funksjon" er navnet på metoden.