Hướng dẫn can a variable call a function python? - một biến có thể gọi một hàm python không?

def test():
    print 'test'

def test2():
    print 'test2'

test = {'test':'blabla','test2':'blabla2'}
for key, val in test.items():
    key() # Here i want to call the function with the key name, how can i do so?

Hỏi ngày 13 tháng 12 năm 2010 lúc 16:50Dec 13, 2010 at 16:50

Hướng dẫn can a variable call a function python? - một biến có thể gọi một hàm python không?

1

Bạn có thể sử dụng các đối tượng chức năng thực tế làm khóa, thay vì tên của các hàm. Các chức năng là các đối tượng hạng nhất trong Python, vì vậy nó sạch hơn và thanh lịch hơn để sử dụng chúng trực tiếp hơn là tên của chúng.

test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()

Đã trả lời ngày 13 tháng 12 năm 2010 lúc 16:53Dec 13, 2010 at 16:53

John Kugelmanjohn KugelmanJohn Kugelman

338K67 Huy hiệu vàng509 Huy hiệu bạc560 Huy hiệu Đồng67 gold badges509 silver badges560 bronze badges

0

John có một giải pháp tốt. Đây là một cách khác, sử dụng eval():

def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')

Lưu ý rằng tôi đã thay đổi tên của từ điển để ngăn chặn một cuộc đụng độ với tên của hàm

test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
0.

Đã trả lời ngày 13 tháng 12 năm 2010 lúc 17:00Dec 13, 2010 at 17:00

ChrisayCockchrisaycockchrisaycock

Phim huy hiệu vàng 35,4K1414 gold badges88 silver badges121 bronze badges

4

def test():
    print 'test'

def test2():
    print 'test2'

assign_list=[test,test2]

for i in assign_list:
    i()

2

Đăng nhập vào tài khoản Python Barsels của bạn để lưu cài đặt screencast của bạn.

Vẫn chưa có tài khoản? Đăng ký tại đây.

Các chức năng là gì và làm thế nào chúng ta có thể sử dụng chúng?functions and how can we use them?

Gọi một chức năng trong Python

Chúng ta hãy sử dụng một chức năng được tích hợp vào chức năng Python: Python của

test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1.

Nếu chúng tôi gõ

test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1 và nhấn phím
test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
3, chúng tôi sẽ xem biến
test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1 chỉ vào:

>>> numbers = [2, 1, 3, 4, 7, 11, 18]
>>> sum
<built-in function sum>

Chúng tôi không thực sự sử dụng chức năng ở đây, chúng tôi đề cập đến đối tượng hàm mà biến

test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1 trỏ đến.referring to the function object that the variable
test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1 points to.

Để sử dụng chức năng này, chúng ta cần đặt dấu ngoặc đơn sau nó. Đặt dấu ngoặc đơn sau một hàm sẽ gọi hàm.call the function.

>>> sum()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: sum() takes at least 1 positional argument (0 given)

Khi gọi chức năng này, chúng tôi đã gặp lỗi vì

test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1 yêu cầu ít nhất một đối số nhưng chúng tôi đã không vượt qua bất kỳ đối số nào.argument but we didn't pass it any arguments.

Để sử dụng chức năng

test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1, chúng ta phải chuyển nó một số lượng như một đối số.

Đối số và giá trị trả về

Để chuyển một đối số cho một hàm, bạn đặt đối số bên trong dấu ngoặc đơn khi gọi hàm.put the argument inside the parentheses when calling the function.

Đối số về cơ bản là các đầu vào cho một hàm. Các hàm có đầu vào (dưới dạng đối số) và đầu ra là giá trị trả về. Số nguyên

test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
8 là giá trị trả về của hàm này: are basically the inputs to a function. Functions have inputs (as arguments) and an output as a return value. The integer
test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
8 is the return value of this function:

Chúng tôi đã thấy

test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
8 được in ra tại Python Repling, nhưng chức năng
test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1 này không thực sự in 46, nó đã trả lại 46.

Nếu chúng ta đặt gọi chức năng này ở phía bên phải của dấu hiệu

def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
1, chúng ta có thể gán biến
def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
2 cho bất kỳ giá trị trả về nào của việc gọi
test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1 với
def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
4 là (trong trường hợp này là 46).

>>> total = sum(numbers)
>>> total
46

Giá trị trả về mặc định là def test(): print 'test' def test2(): print 'test2' mydict = {'test':'blabla','test2':'blabla2'} for key, val in mydict.items(): eval(key+'()') 5

Không phải tất cả các chức năng đã trả về các giá trị. Ví dụ: hàm

def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
6 không có giá trị trả về.

Nếu chúng ta gán một biến cho giá trị trả về của cuộc gọi

def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
6:

>>> name = print("Trey")
Trey

Chúng ta sẽ thấy văn bản (

def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
8) được in ra, nhưng chúng ta cũng sẽ thấy rằng biến
def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
9 là
def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
5:

>>> name
>>> print(name)
None

def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
5 là một giá trị đặc biệt về cơ bản có nghĩa là hàm này không có giá trị trả về.this function doesn't have a return value.

Trong Python, chúng tôi thường cho rằng các chức năng thực hiện một số hành động hoặc trả lại một cái gì đó, nhưng không phải cả hai. Hàm

def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
6 thực hiện một hành động (nó in một cái gì đó lên màn hình) trong khi hàm
test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1 trả về một giá trị.perform some action or return something, but not both. The
def test():
        print 'test'

def test2():
        print 'test2'

mydict = {'test':'blabla','test2':'blabla2'}
for key, val in mydict.items():
        eval(key+'()')
6 function performs an action (it prints something to the screen) whereas the
test = {test:'blabla', test2:'blabla2'}

for key, val in test.items():
    key()
1 function returns a value.

Sử dụng dấu ngoặc đơn để gọi một chức năng trong Python

Để sử dụng các hàm trong Python, bạn viết tên hàm (hoặc biến trỏ đến đối tượng hàm) theo sau là dấu ngoặc đơn (để gọi hàm). Nếu hàm đó chấp nhận các đối số (như hầu hết các hàm), thì bạn sẽ chuyển các đối số bên trong dấu ngoặc đơn khi bạn gọi hàm.call the function). If that function accepts arguments (as most functions do), then you'll pass the arguments inside the parentheses as you call the function.

Nếu hàm đó có giá trị trả về, bạn có thể thu được giá trị trả về một biến hoặc chuyển giá trị trả về thẳng vào một cuộc gọi hàm khác.return value, you can capture that return value into a variable or pass that return value straight into another function call.

Bạn có thể gọi một chức năng trong Python không?

Làm thế nào để gọi một chức năng trong Python?Khi chúng tôi đã xác định một hàm, chúng tôi có thể gọi nó từ một hàm, chương trình hoặc thậm chí là dấu nhắc Python.Để gọi một hàm, chúng tôi chỉ cần nhập tên hàm với các tham số thích hợp.Once we have defined a function, we can call it from another function, program, or even the Python prompt. To call a function we simply type the function name with appropriate parameters.

Làm thế nào để Python chuyển các biến cho các chức năng?

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.

Bạn có thể gọi một biến bên trong một hàm không?

Thông thường, khi bạn tạo một biến bên trong một hàm, biến đó là cục bộ và chỉ có thể được sử dụng bên trong hàm đó.Để tạo một biến toàn cầu bên trong một hàm, bạn có thể sử dụng từ khóa toàn cầu.when you create a variable inside a function, that variable is local, and can only be used inside that function. To create a global variable inside a function, you can use the global keyword.