Files
freeCodeCamp/guide/arabic/python/calling-functions/index.md
2018-10-16 21:32:40 +05:30

2.7 KiB

title, localeTitle
title localeTitle
Python Calling Functions وظائف الاتصال بيثون

بيان تعريف دالة لا ينفذ الدالة. يتم تنفيذ (استدعاء) وظيفة باستخدام اسم الدالة متبوعًا بقوس يرفق الوسائط المطلوبة (إن وجدت).

`>>> def say_hello(): ... print('Hello') ...

say_hello() Hello `

يقدم تنفيذ وظيفة جدول رمز جديد يستخدم للمتغيرات المحلية للدالة. بتعبير أدق ، تخزن جميع التعيينات المتغيرة في دالة القيمة في جدول الرموز المحلي ؛ بينما تظهر المراجع المتغيرة أولاً في جدول الرموز المحلي ، ثم في جداول الرموز المحلية لإدراج الوظائف ، ثم في جدول الرموز العام ، وأخيرًا في جدول الأسماء المضمنة. وبالتالي ، لا يمكن تعيين المتغيرات العامة بشكل مباشر ضمن دالة ما (ما لم يتم تسميتها في بيان عام) ، على الرغم من إمكانية الرجوع إليها.

`>>> a = 1

b = 10 def fn(): ... print(a) # local a is not assigned, no enclosing function, global a referenced. ... b = 20 # local b is assigned in the local symbol table for the function. ... print(b) # local b is referenced. ... fn() 1 20 b # global b is not changed by the function call. 10 `

يتم إدخال المعلمات الفعلية (الوسائط) إلى استدعاء دالة في جدول الرموز المحلي للدالة المسماة عندما يتم استدعاؤها ؛ وبالتالي ، يتم تمرير الوسائط باستخدام المكالمة حسب القيمة (حيث تكون القيمة دومًا مرجع كائن ، وليس قيمة الكائن). عند استدعاء دالة دالة أخرى ، يتم إنشاء جدول رمز محلي جديد لهذا الاستدعاء.

`>>> def greet(s): ... s = "Hello " + s # s in local symbol table is reassigned. ... print(s) ...

person = "Bob" greet(person) Hello Bob person # person used to call remains bound to original object, 'Bob'. 'Bob' `

لا يمكن إعادة تعيين الوسائط المستخدمة في استدعاء دالة بواسطة الدالة ، ولكن يمكن تغيير القيم التي تشير إلى كائنات قابلة للتغيير إلى قيمها:

`>>> def fn(arg): ... arg.append(1) ...

a = [1, 2, 3] fn(a) a [1, 2, 3, 1] `