Python හි ශ්‍රිතයක් තුළ ශ්‍රිතය

Python හි, එක් ශ්‍රිත තුළ තවත් ශ්‍රිත අැති කර ගත හැකිය. අපට බාහිර ශ්‍රිතයක් outer ඇති බව සිතමු, එහි ඇතුළත inner ශ්‍රිතය පිහිටා ඇත:

pythondef outer():
  def inner():
    pass

ඉහත දක්වා ඇති උදාහරණය ප්‍රමාණවත් තරම් සරල ලෙස පෙනේ. කෙසේ වෙතත්, ශ්‍රිතයේ ශරීරය තුළ outer හැර inner වෙනත් මෙහෙයුම් ද ක්‍රියාත්මක වන අවස්ථා බොහෝ විට පවතී. කේතය සරල කිරීම සඳහා, කෙනෙකුට inner පිටත කේත ගොනුවට ගෙන යා හැකිය, නමුත් මෙම ශ්‍රිතය භාවිතා කරනු ලබන්නේ එක් වරක් පමණක් වන අතර ශ්‍රිතය තුළට පමණි outer. එබැවින් එය පිටතට ගෙන යාම අර්ථවත් නොවේ.

අපි උදාහරණයක් සලකා බලමු, ශ්‍රිතයට outer ලැයිස්තුවක් ලබා දී ඇති විට. ශ්‍රිතය භාවිතා කරමින් inner සංඛ්‍යාත්මක අංගය ලැයිස්තුව වර්ග බලයට නංවනු ඇත. මේ සඳහා ශ්‍රිතයට පසුව inner හිස් ලැයිස්තුවක් අැති කරන්න res, එහි ලූපය තුළ වර්ග කරන ලද මූලද්‍රව්‍ය එක් කරනු ඇත:

pythondef outer(lst):
  def inner(num):
    return num ** 2

  res = []

  for el in lst:
    res.append(inner(el))

  return res

අපි ශ්‍රිතය කැඳවමු outer, එයට පරාමිති ලැයිස්තුව පවරන්න සහ ප්‍රතිදානය කොන්සෝලයට:

pythonprint(outer([2, 3, 5])) # [4, 9, 25] ප්‍රතිදානය කරයි
Задание 1

බාහිර සහ අභ්‍යන්තර ශ්‍රිත ලියන්න, ඒවායේ ඒකාබද්ධ ක්‍රියාකාරිත්වය ප්‍රතිදානය කරනු ඇත ලැයිස්තුවේ එක් එක් තන්තු මූලද්‍රව්‍ය අකුරු විශාල කර

Задание 2

ශ්‍රිත ලබා දී ඇත:

pythondef func1(num):
  if num > 0:
    num += 2
  return num

def func2(iter):
  res = []
  for el in iter:
    res.append(func1(el))

  return res

කේතය නැවත ලියන්න එමඟින් func1 func2 සඳහා අභ්‍යන්තර ශ්‍රිතයක් වනු ඇත.