Как да извикате функция в Python (Пример)
⚡ Умно обобщение
Функции в Python са многократно използваеми блокове код, които се изпълняват при извикване, дефинирани с оператора def. Те приемат аргументи, връщат стойности и разчитат на последователен отстъп, за да групират операторите, принадлежащи на всяка функция.
Какво е функция в Python?
A Функция в Python е част от код, която се изпълнява, когато бъде посочена. Използва се за използване на кода на повече от едно място в програмата. Нарича се още метод или процедура. Python предоставя много вградени функции като print(), input(), compile() и exec(), но също така ви дава свободата да създавате свои собствени функции.
Как да дефинираме и извикаме функция в Python
Функция в Python се дефинира от оператора „def“, последван от името на функцията и скоби ( () ).
Пример:
Нека дефинираме функция, като използваме командата „def func1():“ и я извикаме. Изходът на функцията ще бъде „Уча се“ Python функция “.
Извикването на функцията func1() извиква нашата def func1(): и отпечатва командата „Уча се Python функция „Няма“.
Има набор от правила в Python програмиране за дефиниране на функция.
- Всички аргументи или входни параметри трябва да бъдат поставени в тези скоби.
- Първото изречение на функцията може да бъде незадължително изречение — документационният низ или низът за документация на функцията.
- Кодът във всяка функция започва с двоеточие (:) и трябва да бъде с отстъп (интервал).
- Операторът return (израз) излиза от функция, като по избор връща стойност на извикващата функция. Оператор return без аргументи е същият като return None.
Значение на отстъп (интервал) в Python
Преди да се запознаем с Python функции, важно е да разберем правилото за отстъп, което да декларираме Python функции и тези правила са приложими и за други елементи на Python както и, например, деклариране на условия, цикли или променливи.
Python следва специфичен стил на отстъпи, за да дефинира кода. Тъй като Python Функциите нямат изрично начало или край, както къдравите скоби, за да посочат началото и края на функцията, те трябва да разчитат на това отстъпване. Тук ще вземем един прост пример с командата „print“. Когато напишем функцията „print“ точно под реда def func1():, тя ще покаже „грешка при отстъпване: очаква се блок с отстъп“.
Сега, когато добавите отстъпа (интервала) пред функцията „print“, тя би трябвало да се отпечата както се очаква.
Поне един отстъп е достатъчен, за да работи кодът ви успешно. Но като най-добра практика е препоръчително да оставите около 3-4 места с отстъп, за да извикате функцията си.
Необходимо е също така, когато декларирате отстъп, да запазите същия отстъп за останалата част от кода си. Например, на екранната снимка по-долу, когато извикаме друг оператор „still in func1“ и той не е деклариран точно под първия оператор print, ще се покаже грешка при отстъп: „unindent не съответства на никое друго ниво на отстъп“.
Сега, когато приложим един и същ отстъп и за двата оператора и ги подравним на един и същи ред, това дава очаквания резултат.
Как функционира връщаната стойност?
Командата за връщане в Python указва каква стойност да се върне на извикващия функцията. Нека разберем това със следния пример.
Стъпка 1) Функцията не връща нищо
Тук виждаме кога една функция не „връща“. Например, искаме квадрата на 4 и резултатът трябва да бъде „16“, когато кодът се изпълни. Това се получава, когато просто използваме кода „print x*x“, но когато извикате функцията „print square“, тя връща „None“ като изход. Това е така, защото когато извикате функцията, рекурсията не се случва и тя отпада в края на функцията. Python връща „None“ при попадане в края на функцията.
Стъпка 2) Заменете командата за печат с команда за присвояване
За да стане това по-ясно, заместваме командата print с команда за присвояване. Нека проверим изхода.
Когато изпълните командата „print square (4)“, тя всъщност връща стойността на обекта. Тъй като нямаме никаква специфична функция, която да изпълним тук, тя връща „None“.
Стъпка 3) Използвайте функцията „return“ и изпълнете кода
Сега ще видим как да извлечем изхода, използвайки командата „return“. Когато използвате функцията „return“ и изпълните кода, ще получите изход „16“.
Стъпка 4) Изпълнете командата 'print square'
Функции в Python сами по себе си са обект и обектът има някаква стойност. Тук ще видим как Python третира обект. Когато изпълните командата „print square“, тя връща стойността на обекта. Тъй като не сме предали никакъв аргумент, нямаме никаква специфична функция, която да изпълним тук, така че връща стойност по подразбиране (0x021B2D30), която е местоположението на обекта. На практика Python програма, вероятно никога няма да ви се наложи да правите това.
Аргументи във функциите
Аргументът е стойност, която се предава на функцията при нейното извикване.
С други думи, от страната на извикващата функция това е аргумент, а от страната на функцията е параметър.
Нека видим как Python аргументите работят.
Стъпка 1) Аргументите се декларират в дефиницията на функцията. При извикване на функцията можете да предадете стойностите на тези аргументи, както е показано по-долу.
Стъпка 2) За да декларирате стойност по подразбиране за аргумент, присвоете му стойност в дефиницията на функцията.
Пример: x няма стойност по подразбиране. Стойността по подразбиране на y = 0. Когато предоставим само един аргумент при извикване на функцията за умножение, Python присвоява предоставената стойност на x, докато keeping стойността на y=0. Следователно умножението на x*y=0.
Стъпка 3) Този път ще променим стойността на y=2 вместо стойността по подразбиране y=0 и ще върнем резултата като (4×2)=8.
Стъпка 4) Можете също да промените реда, в който се предават аргументите PythonТук сме обърнали реда на стойностите x и y на x=4 и y=2.
Стъпка 5) Множество аргументи могат да се предават и като масив. В примера извикваме множеството аргументи (1,2,3,4,5), като извикаме функцията (*args).
Пример: Декларирахме множество аргументи като числата (1,2,3,4,5); когато извикаме функцията (*args), тя отпечатва изхода като (1,2,3,4,5).
Съвет:
- In Python 2.7, претоварването на функции не се поддържа. Претоварването на функции е възможността за създаване на множество методи с едно и също име с различна имплементация. Претоварването на функции е напълно поддържано в Python 3.
- Съществува доста объркване между методи и функции. Методи в Python са свързани с екземпляри на обекти, докато функциите не са. Когато Python извиква метод, той свързва първия параметър на това извикване към съответната препратка към обект. С прости думи, самостоятелна функция в Python е „функция“, докато функция, която е атрибут на клас или екземпляр, е „метод“.
Ето пълния Python 3 код
#define a function
def func1():
print ("I am learning Python function")
print ("still in func1")
func1()
def square(x):
return x*x
print(square(4))
def multiply(x,y=0):
print("value of x=",x)
print("value of y=",y)
return x*y
print(multiply(y=2,x=4))
Ето пълния Python 2 код
#define a function
def func1():
print " I am learning Python function"
print " still in func1"
func1()
def square(x):
return x*x
print square(4)
def multiply(x,y=0):
print"value of x=",x
print"value of y=",y
return x*y
print multiply(y=2,x=4)















