Một trong những tính năng mạnh mẽ nhất của Python là mọi thứ đều là một đối tượng, bao gồm cả các chức năng. Các chức năng trong Python là các đối tượng hạng nhất.first-class objects. Điều này có nghĩa là, các chức năng trong Python: Một hậu quả thú vị của thế giới quan Python là một chức năng là một đối tượng của lớp Đôi khi chúng ta không muốn gọi và đánh giá một chức năng. Đôi khi chúng tôi muốn làm những việc khác để hoặc với một chức năng. Ví dụ: các chức năng nhà máy khác nhau ( def rollNDice( n=2 ): t= 0 for d in range(n): t += random.randrange( 1, 7 ) return t1, def rollNDice( n=2 ): t= 0 for d in range(n): t += random.randrange( 1, 7 ) return t2) có thể được sử dụng với hàm def rollNDice( n=2 ): t= 0 for d in range(n): t += random.randrange( 1, 7 ) return t3 thay vì được gọi để tạo một đối tượng mới. Ví dụ, def rollNDice( n=2 ): t= 0 for d in range(n): t += random.randrange( 1, 7 ) return t4 có giá trị def rollNDice( n=2 ): t= 0 for d in range(n): t += random.randrange( 1, 7 ) return t5. Nó sử dụng hàm int , nhưng không áp dụng chức năng int .Một đối tượng chức năng được tạo với câu lệnh def. Chủ yếu, chúng tôi muốn đánh giá các đối tượng chức năng chúng tôi tạo. Tuy nhiên, vì một hàm là một đối tượng, nó có các thuộc tính và nó có thể được thao tác ở một mức độ hạn chế. def statement. Primarily, we want to evaluate the function objects we create. However, because a function is an object, it has attributes, and it can be manipulated to a limited extent. Từ quan điểm cú pháp, một tên theo sau là ____ 18 là một cuộc gọi chức năng. Bạn có thể nghĩ về ____ 18 là toán tử "cuộc gọi": họ yêu cầu đánh giá các đối số, sau đó chúng áp dụng chức năng. Khi chúng ta sử dụng tên hàm không có ____ 18, chúng ta đang nói về đối tượng Gọi hàm. & Nbsp; cho đến nay, cách sử dụng phổ biến nhất cho một đối tượng hàm là gọi nó. Khi chúng tôi theo tên hàm với ____ 18, chúng tôi đang gọi hàm: đánh giá các đối số và áp dụng chức năng. Gọi chức năng là thao tác phổ biến nhất.By far, the most common use for a function object is to call it. When we follow a function name with def rollNDice( n=2 ): t= 0 for d in range(n): t += random.randrange( 1, 7 ) return t8's, we are calling the function: evaluating the arguments, and applying the function. Calling the function is the most common manipulation. Bí danh chức năng. & Nbsp; Điều này là nguy hiểm, bởi vì nó có thể tạo ra một chương trình tối nghĩa. Tuy nhiên, nó cũng có thể đơn giản hóa việc phát triển và tăng cường phần mềm. Hãy tưởng tượng rằng phiên bản đầu tiên của chương trình của chúng tôi có hai chức năng có tên def rollDie(): return rollNDice( 1 ) def rollDice(): return rollNDice()5 and def rollDie(): return rollNDice( 1 ) def rollDice(): return rollNDice()6. The definitions might look like the following. def rollDie(): return random.randrange(1,7) def rollDice(): return random.randrange(1,7) + random.randrange(1,7) Khi chúng tôi muốn mở rộng chương trình của mình để xử lý các trò chơi năm kiểu, chúng tôi nhận ra rằng chúng tôi có thể khái quát chức năng này. def rollNDice( n=2 ): t= 0 for d in range(n): t += random.randrange( 1, 7 ) return t Điều quan trọng là phải loại bỏ thuật toán trùng lặp trong cả ba phiên bản của chức năng lăn xúc xắc của chúng tôi. Vì def rollDie(): return rollNDice( 1 ) def rollDice(): return rollNDice()5 và def rollDie(): return rollNDice( 1 ) def rollDice(): return rollNDice()6 chỉ là những trường hợp đặc biệt của def rollDie(): return rollNDice( 1 ) def rollDice(): return rollNDice()9, chúng ta nên thay thế chúng bằng một cái gì đó như sau. def rollDie(): return rollNDice( 1 ) def rollDice(): return rollNDice() Định nghĩa sửa đổi này của def rollDie(): return rollNDice( 1 ) def rollDice(): return rollNDice()6 thực sự chỉ là một tên khác cho rollDice = rollNDice1. Vì một hàm là một đối tượng được gán cho một biến, chúng ta có thể có nhiều biến được gán cho hàm. Đây là cách chúng ta tạo ra một bí danh cho một hàm. rollDice = rollNDice Cảnh báoĐịnh nghĩa bí danh chức năng giúp duy trì khả năng tương thích giữa các bản phát hành phần mềm cũ và mới. Nó không phải là một cái gì đó nên được thực hiện như một thực hành chung; Chúng ta cần cẩn thận cung cấp nhiều tên cho một chức năng nhất định. Đây có thể là một đơn giản hóa. Nó cũng có thể là một cải tiến hiệu suất lớn cho một số loại chức năng được sử dụng sâu trong các vòng lặp lồng nhau. Các thuộc tính chức năng. & NBSP; một đối tượng hàm có một số thuộc tính. Chúng ta có thể thẩm vấn các thuộc tính đó và ở một phần mở rộng hạn chế, chúng ta có thể thay đổi một số thuộc tính này. Để biết thêm thông tin, xem Phần 3.2 của tham chiếu ngôn ngữ Python và phần 2.3.9.3 của tham chiếu thư viện Python.A function object has a number of attributes. We can interrogate those attributes, and to a limited extend, we can change some of these attributes. For more information, see section 3.2 of the Python Language Reference and section 2.3.9.3 of the Python Library Reference. DocString từ dòng đầu tiên của cơ thể chức năng. rollDice = rollNDice4, rollDice = rollNDice5 rollDice = rollNDice5 Tên chức năng từ câu lệnh def. def statement. rollDice = rollNDice6 Tên của mô -đun trong đó tên hàm được xác định. rollDice = rollNDice7 Tuple với các giá trị mặc định được gán cho mỗi đối số có giá trị mặc định. Đây là một tập hợp con của các tham số, bắt đầu với tham số đầu tiên có giá trị mặc định. rollDice = rollNDice8 Đối tượng mã thực tế là bộ câu lệnh trong phần thân của chức năng này. rollDice = rollNDice9 Từ điển xác định không gian tên toàn cầu cho mô -đun xác định hàm này. Đây là def rollDie(): return random.randrange(1,7) rollDie.version= "1.0" rollDie.authoor= "sfl"0 của mô -đun xác định hàm này. def rollDie(): return random.randrange(1,7) rollDie.version= "1.0" rollDie.authoor= "sfl"1, def rollDie(): return random.randrange(1,7) rollDie.version= "1.0" rollDie.authoor= "sfl"2 def rollDie(): return random.randrange(1,7) rollDie.version= "1.0" rollDie.authoor= "sfl"2 Từ điển xác định không gian tên cục bộ cho các thuộc tính của hàm này. Bạn cũng có thể đặt và nhận các thuộc tính chức năng của riêng bạn. def rollDie(): return random.randrange(1,7) rollDie.version= "1.0" rollDie.authoor= "sfl" Chức năng của một đối tượng có nghĩa là gì?Một đối tượng hàm, hoặc functor (hai thuật ngữ đồng nghĩa) chỉ đơn giản là bất kỳ đối tượng nào có thể được gọi như thể nó là một hàm. Một hàm thông thường là một đối tượng hàm, và một con trỏ hàm cũng vậy; Tổng quát hơn, một đối tượng của một lớp xác định toán tử ().any object that can be called as if it is a function. An ordinary function is a function object, and so is a function pointer; more generally, so is an object of a class that defines operator().
Làm thế nào để bạn gọi một đối tượng hàm trong Python?Khi một hàm được tạo trong Python, chúng ta có thể gọi nó bằng cách viết function_name () chính hoặc hàm khác/ hàm lồng nhau. Sau đây là cú pháp để gọi một hàm. Cú pháp: DEF function_name ():by writing function_name() itself or another function/ nested function. Following is the syntax for calling a function. Syntax: def function_name():
Làm thế nào để một đối tượng chức năng hoạt động?Trong lập trình máy tính, một đối tượng hàm là một cấu trúc cho phép một đối tượng được gọi hoặc gọi như thể nó là một hàm thông thường, thường có cùng một cú pháp (một tham số hàm cũng có thể là một hàm).Các đối tượng chức năng thường được gọi là functor.a construct allowing an object to be invoked or called as if it were an ordinary function, usually with the same syntax (a function parameter that can also be a function). Function objects are often called functors.
Làm thế nào để bạn đọc một đối tượng chức năng trong Python?Nếu bạn muốn nhìn vào bên trong một đối tượng trực tiếp, thì mô -đun kiểm tra của Python là một câu trả lời tốt.Nói chung, nó hoạt động để lấy mã nguồn của các hàm được xác định trong một tệp nguồn ở đâu đó trên đĩa ... type(). getattr(). hasattr(). globals(). locals(). callable(). |