Hướng dẫn can i have a list of functions in python? - tôi có thể có danh sách các hàm trong python không?

Trong Python, chức năng là một đối tượng hạng nhất có nghĩa là hàm đó giống như bất kỳ đối tượng nào khác.

Một hàm có thể được truyền dưới dạng đối số hoặc bạn có thể bao gồm một hàm dưới dạng một mục trong danh sách hoặc làm giá trị trong khóa: cặp giá trị của một từ điển hoặc mục trong một tập hợp, v.v.

Trong hướng dẫn này, chúng tôi sẽ tìm hiểu cách thêm [các] mục dưới dạng mục trong danh sách. Nói cách khác, chúng tôi sẽ xây dựng một danh sách các chức năng.

Thí dụ

Trong ví dụ này, chúng tôi xác định hai hàm có tên hàm1 [] và function2 []. Sau đó, chúng tôi sẽ khởi tạo một danh sách với hai chức năng này dưới dạng các mục.

Chương trình Python

def function1[]:
    print['Function 1']

def function2[]:
    print['Function 2']

myList = [function1, function2]

Chúng tôi cũng có thể sử dụng các mục của danh sách, là các chức năng và gọi chúng. Trong chương trình sau, chúng tôi sẽ sử dụng các mục danh sách này và gọi các chức năng.

Chương trình Python

def function1[]:
    print['Function 1']

def function2[]:
    print['Function 2']

#list of functions
myList = [function1, function2]

#call function using list object
myList[0][]
myList[1][]

Chúng tôi cũng có thể sử dụng các mục của danh sách, là các chức năng và gọi chúng. Trong chương trình sau, chúng tôi sẽ sử dụng các mục danh sách này và gọi các chức năng.

Function 1
Function 2

Đầu ra

Lưu ý: Dấu ngoặc đơn sau khi tên hàm gọi hàm, trong khi chỉ tên hàm được tham chiếu đến hàm.

Hãy ghi nhớ lưu ý trên, quan sát chương trình Python mà chúng tôi đã viết cho ví dụ này. Khi chúng tôi thêm các chức năng vào danh sách dưới dạng các mục, chúng tôi đã không đề cập đến bất kỳ dấu ngoặc đơn nào, chỉ là tên hàm. Và khi chúng tôi muốn gọi chức năng, chúng tôi đã tìm nạp các chức năng từ danh sách bằng chỉ mục và sử dụng dấu ngoặc đơn. Dấu ngoặc đơn sau tên chức năng được gọi là hàm và thực hiện nó.

Bản tóm tắt

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:

  • có loại
  • có thể được gửi dưới dạng đối số đến một hàm khác
  • có thể được sử dụng trong biểu thức
  • có thể trở thành một phần của nhiều dữ liệu khác nhau

Vì vậy, hôm nay trong khoa học máy tính, tôi đã hỏi về việc sử dụng một chức năng như một biến. Ví dụ: tôi có thể tạo một hàm, chẳng hạn như returnMe[i] và tạo một mảng sẽ được sử dụng để gọi nó. Giống như

def function1[]:
    print['Function 1']

def function2[]:
    print['Function 2']

#list of functions
myList = [function1, function2]

#call function using list object
myList[0][]
myList[1][]
0 và sau đó tôi có thể nói H2 và nó sẽ gọi
def function1[]:
    print['Function 1']

def function2[]:
    print['Function 2']

#list of functions
myList = [function1, function2]

#call function using list object
myList[0][]
myList[1][]
1. Xin lỗi, tôi đã có một chút phấn khích về điều này. Câu hỏi của tôi là có cách gọi như
def function1[]:
    print['Function 1']

def function2[]:
    print['Function 2']

#list of functions
myList = [function1, function2]

#call function using list object
myList[0][]
myList[1][]
2 và xác định một hàm chỉ tồn tại trong mảng?

EDIT:

Đây là một số mã mà tôi đã viết với điều này! Vì vậy, tôi vừa hoàn thành một fizzbuzz tuyệt vời với giải pháp này, cảm ơn bạn rất nhiều một lần nữa! Đây là mã đó làm ví dụ:

funct = []
s = ""

def newFunct[str, num]:
    return [lambda x: str if[x%num==0] else ""]

funct.append[newFunct["Fizz",3]]
funct.append[newFunct["Buzz",5]]

for x in range[1,101]:
    for oper in funct:
        s += oper[x]
    s += ":"+str[x]+"\n"

print s

Aran-Fey

36.6K11 Huy hiệu vàng96 Huy hiệu bạc141 Huy hiệu đồng11 gold badges96 silver badges141 bronze badges

Đã hỏi ngày 4 tháng 3 năm 2013 lúc 19:31Mar 4, 2013 at 19:31

Bạn có thể tạo các chức năng ẩn danh bằng cách sử dụng từ khóa

def function1[]:
    print['Function 1']

def function2[]:
    print['Function 2']

#list of functions
myList = [function1, function2]

#call function using list object
myList[0][]
myList[1][]
3.

def func[x,keyword='bar']:
    return [x,keyword]

gần tương đương với:

func = lambda x,keyword='bar':[x,keyword]

Vì vậy, nếu bạn muốn tạo một danh sách với các chức năng trong đó:

my_list = [lambda x:x**2,lambda x:x**3]
print my_list[0][2]  #4
print my_list[1][2]  #8

Đã trả lời ngày 4 tháng 3 năm 2013 lúc 19:32Mar 4, 2013 at 19:32

Mgilsonmgilsonmgilson

289K60 Huy hiệu vàng604 Huy hiệu bạc676 Huy hiệu Đồng60 gold badges604 silver badges676 bronze badges

1

Không thực sự ở Python. Như Mgilson cho thấy, bạn có thể thực hiện điều này với các chức năng tầm thường, nhưng chúng chỉ có thể chứa các biểu thức, không phải câu lệnh, vì vậy rất hạn chế [ví dụ bạn không thể gán cho một biến].

Điều này tất nhiên được hỗ trợ trong các ngôn ngữ khác: ví dụ, trong JavaScript, tạo ra các hàm ẩn danh đáng kể và truyền chúng xung quanh là một điều rất thành ngữ để làm.

Đã trả lời ngày 4 tháng 3 năm 2013 lúc 19:34Mar 4, 2013 at 19:34

Daniel Rosemandaniel RosemanDaniel Roseman

575K61 Huy hiệu vàng840 Huy hiệu bạc852 Huy hiệu Đồng61 gold badges840 silver badges852 bronze badges

4

Bạn có thể tạo các chức năng trong phạm vi ban đầu, gán chúng cho mảng và sau đó xóa chúng khỏi phạm vi ban đầu của chúng. Vì vậy, bạn thực sự có thể gọi họ từ mảng nhưng không phải là một biến cục bộ. Tôi không chắc điều này có đáp ứng yêu cầu của bạn không.

#! /usr/bin/python3.2

def a [x]: print [x * 2]
def b [x]: print [x ** 2]

l = [a, b]

del a
del b

l [0] [3] #works
l [1] [3] #works
a [3] #fails epicly

Đã trả lời ngày 4 tháng 3 năm 2013 lúc 19:40Mar 4, 2013 at 19:40

HyperboreushyperboreusHyperboreus

31.4K9 Huy hiệu vàng45 Huy hiệu bạc84 Huy hiệu đồng9 gold badges45 silver badges84 bronze badges

Bạn có thể tạo danh sách các chức năng

def function1[]:
    print['Function 1']

def function2[]:
    print['Function 2']

#list of functions
myList = [function1, function2]

#call function using list object
myList[0][]
myList[1][]
3 để tăng theo mỗi số từ 0 đến 9 như vậy:

increment = [[lambda arg: [lambda x: arg + x]][i] for i in range[10]]
increment[0][1] #returns 1
increment[9][10] #returns 19

Lưu ý bên:

Tôi nghĩ rằng điều quan trọng cần lưu ý là điều này [con trỏ chức năng không phải là lambdas] có phần giống như cách Python giữ các phương thức trong hầu hết các lớp, ngoại trừ thay vì danh sách, đó là một từ điển với tên hàm chỉ vào các chức năng. Trong nhiều trường hợp nhưng không phải tất cả các trường hợp

def function1[]:
    print['Function 1']

def function2[]:
    print['Function 2']

#list of functions
myList = [function1, function2]

#call function using list object
myList[0][]
myList[1][]
5 đều tương đương với
def function1[]:
    print['Function 1']

def function2[]:
    print['Function 2']

#list of functions
myList = [function1, function2]

#call function using list object
myList[0][]
myList[1][]
6 hoặc
def function1[]:
    print['Function 1']

def function2[]:
    print['Function 2']

#list of functions
myList = [function1, function2]

#call function using list object
myList[0][]
myList[1][]
7

Đã trả lời ngày 4 tháng 3 năm 2013 lúc 19:55Mar 4, 2013 at 19:55

RaufioraufioRaufio

2.31717 Huy hiệu bạc19 Huy hiệu đồng17 silver badges19 bronze badges

Làm cách nào để có được một danh sách các chức năng trong Python?

Chúng tôi có thể liệt kê tất cả các hàm có trong mô -đun Python bằng cách sử dụng phương thức Dir [] trong vỏ Python hoặc trong Shell Prompt Lệnh.using the dir[] method in the Python shell or in the command prompt shell.

Bạn có thể lưu trữ các chức năng trong danh sách Python không?

Các chức năng có thể được lưu trữ dưới dạng các yếu tố của danh sách hoặc bất kỳ cấu trúc dữ liệu nào khác trong Python..

Làm thế nào để bạn tạo một mảng các chức năng trong Python?

Trong Python, bạn có thể tạo các kiểu dữ liệu mới, được gọi là mảng bằng gói Numpy.Các mảng Numpy được tối ưu hóa cho các phân tích số và chỉ chứa một loại dữ liệu duy nhất.Trước tiên, bạn nhập Numpy và sau đó sử dụng hàm mảng [] để tạo một mảng.Hàm mảng [] lấy một danh sách làm đầu vào.You first import NumPy and then use the array[] function to create an array. The array[] function takes a list as an input.

Một chức năng có thể có trong một danh sách?

Khi một hàm "lấy một danh sách", điều đó có nghĩa là có một argumenbt mà người dùng có thể chuyển vào khi họ gọi chức năng đó.Ví dụ: khi bạn nhập in ["Hello World"] Những gì bạn thực sự đang làm là gọi chức năng "In" và chuyển trong chuỗi "Hello World" như một đối số.. For example, when you type print["Hello World"] what you're actually doing is calling the "print" function and passing in the string "Hello World" as an argument.

Bài Viết Liên Quan

Chủ Đề