Hướng dẫn how do you pass a variable to another function in python? - làm thế nào để bạn truyền một biến cho một hàm khác trong python?

Trong bài viết này, chúng tôi sẽ thảo luận về cách sử dụng một biến từ một chức năng khác trong Python. Nói chung, các hàm giới hạn phạm vi của các biến vào khối hàm và chúng không thể được truy cập từ bên ngoài hàm.

Chức năng trong Python:

Các chức năng được coi là đối tượng trong Python. Điều đó có nghĩa là chúng có thể được thông qua dưới dạng đối số, được gán và lưu trữ trong các biến. Cũng có thể liên kết các biến với các hàm trong Python. Đây là cách chúng tôi sẽ tiếp cận nhiệm vụ hiện tại là truy cập một biến từ bên ngoài chức năng. Điều này được thực hiện tương tự như cách chúng tôi truy cập các thành viên của một lớp bởi đối tượng của họ bằng cách sử dụng. nhà điều hành.

Cách sử dụng một biến từ một chức năng khác trong Python:

Biến có thể được gán cho đối tượng hàm bên trong phần thân hàm. Vì vậy, biến chỉ tồn tại sau khi hàm được gọi. Khi hàm đã được gọi, biến sẽ được liên kết với đối tượng hàm. Biến này bây giờ có thể được sử dụng ở bất cứ đâu bên trong hoặc bên ngoài bất kỳ chức năng nào. Hãy cùng xem một triển khai mẫu giống nhau trong mã dưới đây.

def function_1[]:
    # assigning a string as a member of the function object
    function_1.var = "variable inside function_1"
    print["function_1 has been called"]

def function_2[]:
    print["function_2 has been called"]
    print[function_1.var]

function_1[]
function_2[]

Chạy mã này trực tuyến

Lưu ý rằng hàm_1 phải được gọi là đầu tiên khác, hàm_2 sẽ truy cập một biến chưa được tạo. Chạy cùng một mã mà không có hàm_1 [] sẽ dẫn đến lỗi thuộc tính. Đầu ra cho mã trên như sau:

function_1 has been called
function_2 has been called
variable inside function_1

Đầu ra giải thích rõ ràng dòng điều khiển bên trong mã. Function_2 truy cập thuộc tính của hàm_1 phải được gọi là đầu tiên. Do đó, tôi hy vọng bạn tìm thấy bài viết này hữu ích trong việc hiểu cách truy cập các biến từ một chức năng khác trong Python.

Xem thêm:

  • Các lớp học và đối tượng trong Python

1.2.4.1. Định nghĩa chức năng

In [56]: def test[]:
   ....:     print['in test function']
   ....:
   ....:

In [57]: test[]
in test function

Cảnh báo

Các khối chức năng phải được thụt vào dưới dạng các khối dòng điều khiển khác.

1.2.4.2. Trở lại tuyên bố

Các chức năng có thể tùy chọn trả về các giá trị.

In [6]: def disk_area[radius]:
   ...:     return 3.14 * radius * radius
   ...:

In [8]: disk_area[1.5]
Out[8]: 7.0649999999999995

Ghi chú

Theo mặc định, các chức năng trả về

function_1 has been called
function_2 has been called
variable inside function_1
8.

Ghi chú

Theo mặc định, các chức năng trả về

function_1 has been called
function_2 has been called
variable inside function_1
8.

  • Lưu ý cú pháp để xác định hàm:
  • Từ khóa
    function_1 has been called
    function_2 has been called
    variable inside function_1
    9;name, then
  • được theo sau bởi tên chức năng, sau đó
  • Các đối số của hàm được đưa ra giữa các dấu ngoặc đơn sau đó là một đại tràng.
  • cơ thể chức năng;

1.2.4.3. Thông số¶

Các tham số bắt buộc [đối số vị trí]

In [81]: def double_it[x]:
   ....:     return x * 2
   ....:

In [82]: double_it[3]
Out[82]: 6

In [83]: double_it[]
---------------------------------------------------------------------------
Traceback [most recent call last]:
  File "", line 1, in 
TypeError: double_it[] takes exactly 1 argument [0 given]

Tham số tùy chọn [từ khóa hoặc đối số được đặt tên]

In [84]: def double_it[x=2]:
   ....:     return x * 2
   ....:

In [85]: double_it[]
Out[85]: 4

In [86]: double_it[3]
Out[86]: 6

Đối số từ khóa cho phép bạn chỉ định các giá trị mặc định.

Cảnh báo

Các giá trị mặc định được đánh giá khi hàm được xác định, không phải khi nó được gọi. Điều này có thể có vấn đề khi sử dụng các loại có thể thay đổi [ví dụ: từ điển hoặc danh sách] và sửa đổi chúng trong cơ thể chức năng, vì các sửa đổi sẽ tồn tại trong các lời mời của hàm.

Sử dụng một loại bất biến trong đối số từ khóa:

In [124]: bigx = 10

In [125]: def double_it[x=bigx]:
   .....:     return x * 2
   .....:

In [126]: bigx = 1e9  # Now really big

In [128]: double_it[]
Out[128]: 20

Sử dụng một loại có thể thay đổi trong đối số từ khóa [và sửa đổi nó bên trong cơ thể chức năng]:

In [2]: def add_to_dict[args={'a': 1, 'b': 2}]:
   ...:     for i in args.keys[]:
   ...:         args[i] += 1
   ...:     print[args]
   ...:

In [3]: add_to_dict
Out[3]: 

In [4]: add_to_dict[]
{'a': 2, 'b': 3}

In [5]: add_to_dict[]
{'a': 3, 'b': 4}

In [6]: add_to_dict[]
{'a': 4, 'b': 5}

Mẹo

Liên quan hơn là ví dụ thực hiện cắt lát Python:

In [98]: def slicer[seq, start=None, stop=None, step=None]:
   ....:     """Implement basic python slicing."""
   ....:     return seq[start:stop:step]
   ....:

In [101]: rhyme = 'one fish, two fish, red fish, blue fish'.split[]

In [102]: rhyme
Out[102]: ['one', 'fish,', 'two', 'fish,', 'red', 'fish,', 'blue', 'fish']

In [103]: slicer[rhyme]
Out[103]: ['one', 'fish,', 'two', 'fish,', 'red', 'fish,', 'blue', 'fish']

In [104]: slicer[rhyme, step=2]
Out[104]: ['one', 'two', 'red', 'blue']

In [105]: slicer[rhyme, 1, step=2]
Out[105]: ['fish,', 'fish,', 'fish,', 'fish']

In [106]: slicer[rhyme, start=1, stop=4, step=2]
Out[106]: ['fish,', 'fish,']

Thứ tự của các đối số từ khóa không quan trọng:

In [107]: slicer[rhyme, step=2, start=1, stop=4]
Out[107]: ['fish,', 'fish,']

Nhưng đó là cách thực hành tốt để sử dụng cùng một thứ tự như định nghĩa chức năng.

Đối số từ khóa là một tính năng rất thuận tiện để xác định các hàm với số lượng đối số thay đổi, đặc biệt là khi các giá trị mặc định được sử dụng trong hầu hết các cuộc gọi đến hàm.

1.2.4.4. Đi qua giá trị

Mẹo

Bạn có thể sửa đổi giá trị của một biến bên trong một hàm không? Hầu hết các ngôn ngữ [C, Java, Tiết] phân biệt các lần vượt qua bằng giá trị và đường đi qua bởi tham chiếu. Trong Python, một sự khác biệt như vậy có phần giả tạo, và nó hơi tinh tế cho dù các biến của bạn sẽ được sửa đổi hay không. May mắn thay, tồn tại các quy tắc rõ ràng.

Các tham số cho các hàm là các tham chiếu đến các đối tượng, được truyền theo giá trị. Khi bạn chuyển một biến cho một hàm, Python sẽ chuyển tham chiếu đến đối tượng mà biến đề cập đến [giá trị]. Không phải là biến chính nó.value]. Not the variable itself.

Nếu giá trị được truyền trong một hàm là bất biến, hàm không sửa đổi biến người gọi. Nếu giá trị có thể thay đổi, hàm có thể sửa đổi biến người gọi tại chỗ:value passed in a function is immutable, the function does not modify the caller’s variable. If the value is mutable, the function may modify the caller’s variable in-place:

function_1 has been called
function_2 has been called
variable inside function_1
0

Các chức năng có một bảng biến cục bộ gọi là không gian tên cục bộ.

Biến

In [56]: def test[]:
   ....:     print['in test function']
   ....:
   ....:

In [57]: test[]
in test function
1 chỉ tồn tại trong hàm
In [56]: def test[]:
   ....:     print['in test function']
   ....:
   ....:

In [57]: test[]
in test function
2.

1.2.4.5. Các biến toàn cầu

Các biến được khai báo bên ngoài hàm có thể được tham chiếu trong hàm:

function_1 has been called
function_2 has been called
variable inside function_1
1

Nhưng các biến số toàn cầu của người Viking này không thể được sửa đổi trong hàm, trừ khi được tuyên bố toàn cầu trong hàm.global in the function.

Điều này không hoạt động:

function_1 has been called
function_2 has been called
variable inside function_1
2

Những công việc này:

function_1 has been called
function_2 has been called
variable inside function_1
3

1.2.4.6. Số lượng tham số biến đổi

Các hình thức đặc biệt của các tham số:
  • In [56]: def test[]:
       ....:     print['in test function']
       ....:
       ....:
    
    In [57]: test[]
    in test function
    
    3: Bất kỳ số lượng đối số vị trí nào được đóng gói thành một bộ
  • In [56]: def test[]:
       ....:     print['in test function']
       ....:
       ....:
    
    In [57]: test[]
    in test function
    
    4: Bất kỳ số lượng đối số từ khóa được đóng gói vào từ điển

function_1 has been called
function_2 has been called
variable inside function_1
4

1.2.4.7. Tài liệu

Tài liệu về những gì chức năng làm và các tham số của nó. Hội nghị chung:

function_1 has been called
function_2 has been called
variable inside function_1
5

1.2.4.8. Các chức năng là đối tượng

Các chức năng là các đối tượng hạng nhất, có nghĩa là chúng có thể:
  • được gán cho một biến
  • một mục trong danh sách [hoặc bất kỳ bộ sưu tập nào]
  • được truyền như một lập luận cho một chức năng khác.

function_1 has been called
function_2 has been called
variable inside function_1
6

1.2.4.9. Phương pháp bình

Phương pháp là các hàm gắn liền với các đối tượng. Bạn đã thấy những điều này trong các ví dụ của chúng tôi về danh sách, từ điển, chuỗi, v.v ...

1.2.4.10. Bài tập

Bài tập: Trình tự Fibonacci

Viết một hàm hiển thị các Điều khoản đầu tiên của

In [56]: def test[]:
   ....:     print['in test function']
   ....:
   ....:

In [57]: test[]
in test function
5 của chuỗi Fibonacci, được xác định bởi:

Tập thể dục: Quicksort

Thực hiện thuật toán Quicksort, theo định nghĩa của Wikipedia

function_1 has been called
function_2 has been called
variable inside function_1
7

Làm thế nào để bạn chuyển các biến cho một hàm?

Có hai cách để vượt qua các tham số trong C: Truyền theo giá trị, vượt qua tham chiếu ...
Vượt qua giá trị. Truyền theo giá trị, có nghĩa là một bản sao của dữ liệu được tạo và lưu trữ bằng tên của tham số. ....
Vượt qua tham chiếu. Tham số tham chiếu "đề cập đến dữ liệu gốc trong hàm gọi ..

Làm thế nào để bạn nhập một biến vào một hàm trong Python?

Câu lệnh nhập từ Python của câu lệnh cho phép bạn nhập các thuộc tính cụ thể từ một mô -đun.từ nhập * và sau đó sử dụng các biến trực tiếp.from import * and then use variables directly.

Làm thế nào các biến được truyền trong Python?

Python chuyển các đối số bằng cách chuyển nhượng.Đó là, khi bạn gọi hàm python, mỗi đối số hàm trở thành một biến mà giá trị truyền được gán.by assignment. That is, when you call a Python function, each function argument becomes a variable to which the passed value is assigned.

Làm thế nào để bạn gọi một biến bên ngoài một hàm trong Python?

Sử dụng cú pháp thuộc tính đối tượng để truy cập một biến bên ngoài hàm.Trong một chức năng có tên Func, sử dụng Func cú pháp.Biến = giá trị để lưu trữ giá trị trong biến như một thuộc tính của func.Để truy cập giá trị bên ngoài func, sử dụng func [] để chạy func, sau đó sử dụng chức năng cú pháp_name. to access a variable outside of a function. In a function named func , use the syntax func. variable = value to store value in variable as an attribute of func . To access value outside of func , use func[] to run func , then use the syntax function_name.

Bài Viết Liên Quan

Chủ Đề