Python-ը շատ ճկուն լեզու է և թույլ է տալիս ստեղծել ֆունկցիաներ կոդի գրեթե ցանկացած մասում: Կարելի է նոր ֆունկցիա սահմանել if բլոկի, for ցիկլի կամ մեկ այլ ֆունկցիայի ներսում.
def process(name1, name2, name3):
def greet(name):
if len(name) < 5:
print(f'Hi, {name}')
else:
print('The name is too long')
greet(name1)
greet(name2)
greet(name3)
process('Anna', 'Bob', 'Daniel')
# Hi, Anna
# Hi, Bob
# The name is too long
Այստեղ մենք հայտարարել ենք greet() նոր ֆունկցիա, որը գործում է որպես գործիք, որպեսզի բոլոր 3 անունների համար չկրկնենք if, else պայմանները process() ֆունկցիայում:
Նկատի ունեցեք, որ ներդրված ֆունկցիաները մուտք ունեն բոլոր այն փոփոխականներին, որոնք սահմանված են իրենց վերևում: Այսպիսով, մեր օրինակում greet() ֆունկցիան հասանելիություն ունի name1, name2 և name3-ին:
Առաջադրանք
Փոփոխեք ֆունկցիան այնպես, որ այն վերադարձնի իրեն փոխանցված թվերի բոլոր բաժանարարների ցանկը: Ավելացրեք ներդրված ֆունկցիա, որը վերադարձնում է մեկ թվի բաժանարարների ցանկը: