Hướng dẫn python call function without parameters - hàm gọi python không có tham số

Viết một hàm

The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
2 lấy 3 tham số loại nhạc, nhóm nhạc, giọng ca chính và in tất cả chúng ra như trong ví dụ dưới đây.

Trong trường hợp không có đầu vào nào được cung cấp bởi người dùng, hàm nên giả định các giá trị này cho các tham số: "Classic Rock", "The Beatles", "Freddie Mercury".

Ví dụ:

Input:

Alternative Rock,Pearl Jam,Chris Cornell

Output:

The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell

Lưu ý: Các câu lệnh in sẽ đi vào bên trong music_func []. Ví dụ:

The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
3 The print statements will go inside the music_func[]. For example:
The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
3

#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]

Từ cú pháp được sử dụng trong ví dụ cụ thể của bạn,

The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
4 rất có thể được sử dụng làm gọi lại.

Đây là một ví dụ Python đơn giản về cách thức hoạt động của nó:

>>> def get_square[val]:
...     """The callback."""
...     return val ** 2
...
>>> def caller[func, val]:
...     return func[val]
...
>>> caller[get_square, 5]
25

Nói rộng hơn, nhiều ngôn ngữ, bao gồm Python và C ++, cũng cung cấp cú pháp cho các đối số tùy chọn cho các phương thức. Tùy thuộc vào ngôn ngữ/cú pháp được sử dụng, chúng thậm chí không cần phải theo thứ tự cụ thể. Nếu bạn không cung cấp tất cả mọi thứ, thay vào đó, các giá trị mặc định sẽ được sử dụng cho phương thức đó, giả sử nhà phát triển đã mã hóa logic đó vào phương thức cụ thể đó.

The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
5 có các đối số tùy chọn, vì vậy bạn cần nói với Python rằng đối số thứ ba [
The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
4] nên được sử dụng để đưa ra một biến gọi là
The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
7 với dữ liệu.

Trong trường hợp cụ thể này, dữ liệu này là một tham chiếu đến hàm [

The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
4]. Bạn có thể nói bằng cách thiếu dấu ngoặc đơn.
The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
9 sẽ gọi hàm, trong khi
The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
4 là một tham chiếu đến hàm. Những gì xảy ra tiếp theo thực sự phụ thuộc vào cách thông tin đó được sử dụng bởi param, nhưng về mặt cú pháp, điều này chỉ đơn giản là truyền một tham chiếu như một đối số tùy chọn.

7. Functions

7.1. Defining

Một chức năng trong Python được xác định với từ khóa

#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]
1. Các chức năng không có các loại trả lại được tuyên bố. Một hàm không có câu lệnh
#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]
2 rõ ràng trả về
#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]
3. Trong trường hợp không có đối số và không có giá trị trả về, định nghĩa rất đơn giản.

Gọi hàm được thực hiện bằng cách sử dụng toán tử cuộc gọi

#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]
4 sau tên của hàm.

>>> def hello_function[]:
...     print 'Hello World, it\'s me.  Function.'
...

>>> hello_function[]
Hello World, it's me.  Function.

7.2. Arguments

Các đối số của một hàm được xác định trong câu lệnh

#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]
1. Giống như tất cả các biến khác trong Python, không có loại rõ ràng liên quan đến các đối số hàm. Thực tế này rất quan trọng để xem xét khi đưa ra các giả định về các loại dữ liệu mà chức năng của bạn sẽ nhận được.

Đối số chức năng có thể được xác định tùy chọn với giá trị mặc định. Giá trị mặc định sẽ được gán trong trường hợp đối số không có trong cuộc gọi đến hàm. Tất cả các đối số không có giá trị mặc định phải được liệt kê trước các đối số với các giá trị mặc định trong định nghĩa hàm.

Bất kỳ đối số nào cũng có thể được thông qua một cách ngầm theo vị trí hoặc rõ ràng theo tên, bất kể nó có giá trị mặc định được xác định hay không.

>>> def record_score[name, score=0]:
...     print '%s scored %s' % [name, score]
...

>>> record_score['Jill', 4]
Jill scored 4

>>> record_score['Jack']
Jack scored 0

>>> record_score[score=3, name='Pail']
Pail scored 3

>>> record_score[2]
2 scored 0

>>> record_score[score=2]
Traceback [most recent call last]:
  File "", line 1, in 
  TypeError: record_score[] takes at least 1 non-keyword argument [0 given]

>>> record_score[]
Traceback [most recent call last]:
  File "", line 1, in 
  TypeError: record_score[] takes at least 1 argument [0 given]

Ghi chú

Ví dụ trên cho thấy một sự bất đối xứng có khả năng gây nhầm lẫn khác trong Python. Bạn có thể chuyển các đối số bằng cách sử dụng kiểu thông thường cho một hàm được xác định bằng các đối số biến và bạn có thể chuyển danh sách đối số biến được giải nén cho một hàm được xác định mà không có đối số biến.

7.3. & Nbsp; đối số có thể thay đổi và liên kết của các giá trị mặc định

Khi xác định các đối số mặc định, hãy chăm sóc đặc biệt với các loại dữ liệu có thể thay đổi. Thể hiện của giá trị mặc định được giới hạn tại thời điểm hàm được xác định. Do đó, có một trường hợp duy nhất của đối tượng có thể thay đổi sẽ được sử dụng trên tất cả các cuộc gọi đến hàm.

>>> def add_items[new_items, base_items=[]]:
...     for item in new_items:
...         base_items.append[item]
...     return base_items
...

>>> add_items[[1, 2, 3]]
[1, 2, 3]

>>> add_items[[1, 2, 3]]
[1, 2, 3, 1, 2, 3]

Do đó, tốt nhất là sử dụng giá trị mặc định là

#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]
3 làm cờ để biểu thị sự vắng mặt của đối số và xử lý trường hợp bên trong cơ thể chức năng.

>>> def add_items[new_items, base_items=None]:
...     if base_items is None:
...         base_items = []
...     for item in new_items:
...         base_items.append[item]
...     return base_items
...

>>> add_items[[1, 2, 3]]
[1, 2, 3]

>>> add_items[[1, 2, 3]]
[1, 2, 3]

7.4. & NBSP; Chấp nhận các đối số biến

Ngoài các đối số được đặt tên, các chức năng có thể chấp nhận hai bộ sưu tập đối số đặc biệt.

Đầu tiên là một độ dài thay đổi, được đặt tên là của bất kỳ đối số vị trí bổ sung nào nhận được bởi hàm. Đối số đặc biệt này được xác định bằng cách đặt tiền tố với một dấu hoa thị duy nhất [

#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]
8].

Thứ hai là một từ điển có độ dài thay đổi chứa tất cả các đối số từ khóa được truyền đến hàm không được định nghĩa rõ ràng là một phần của các đối số hàm. Đối số này được xác định bằng tiền tố nó với hai dấu sao [

#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]
9].

Không bắt buộc, nhưng thông thường và do đó rất được khuyến khích, đặt tên cho hai đối số này được tranh luận và kwargs, tương ứng.

Việc sử dụng hai đối số này được minh họa trong tập hợp các ví dụ sau.

>>> def variable_function[*args, **kwargs]:
...     print 'args:', args
...     print 'kwargs:', kwargs
...

>>> variable_function['simple']
args: ['simple',]
kwargs: {}

>>> variable_function[type='Complex']
args: []
kwargs: {'type': 'Complex'}

>>> def mixed_function[a, b, c=None, *args, **kwargs]:
...     print '[a, b, c]:', [a, b, c]
...     print 'args:', args
...     print 'kwargs:', kwargs
...

>>> mixed_function[1, 2, 3, 4, 5, d=10, e=20]
[a, b, c]: [1, 2, 3]
args: [4, 5]
kwargs: {'e': 20, 'd': 10}

7.5. & NBSP; danh sách đối số giải nén

Cũng có thể xây dựng các danh sách đối số [vị trí hoặc từ khóa] và chuyển chúng vào một hàm.

Đối với các đối số vị trí, hãy chèn chúng vào một tuple / danh sách và mong đợi bằng dấu hoa thị [

#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]
8] trong cuộc gọi chức năng.

Đối với các đối số từ khóa, hãy sử dụng từ điển và mong đợi với hai dấu sao [

#definition for music_func goes here
def music_func[a,b,c]:
    if a is None or b is None or c is None:
        print["The best kind of music is Classic Rock"]
        print["The best music group is The Beatles"]
        print["The best lead vocalist is Freddie Mercury"]
    else:
        print["The best kind of music is",a]
        print["The best music group is",b]
        print["The best lead vocalist is",c]
    return
def main[]:
    music, group, singer = input[].split[',']
    music_func[music, group, singer]
    music_func[] #This is suppose to print the first if-statements 
main[]
9].

>>> def printer[a, b, c=0, d=None]:
...     print 'a: {0}, b: {1}, c: {2}, d: {3}'.format[a, b, c, d]
...
>>> printer[2, 3, 4, 5]
a: 2, b: 3, c: 4, d: 5

>>> ordered_args = [5, 6]
>>> keyword_args = {'c': 7, 'd': 8}

>>> printer[*ordered_args, **keyword_args]
a: 5, b: 6, c: 7, d: 8

Ghi chú

Ví dụ trên cho thấy một sự bất đối xứng có khả năng gây nhầm lẫn khác trong Python. Bạn có thể chuyển các đối số bằng cách sử dụng kiểu thông thường cho một hàm được xác định bằng các đối số biến và bạn có thể chuyển danh sách đối số biến được giải nén cho một hàm được xác định mà không có đối số biến.

7.6. Scope

Mỗi đánh giá chức năng tạo ra một không gian tên cục bộ được thao tác ở bất kỳ cấp độ nào trong hàm. Do đó, các biến có thể được xác định ban đầu ở mức độ phạm vi dường như thấp hơn so với cuối cùng chúng được sử dụng.

The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
0

Cảnh báo

Mô hình này cho phạm vi có thể đơn giản hóa mã của bạn, nhưng chú ý. Nếu bạn không dự đoán tất cả các đường dẫn mã, cuối cùng bạn có thể tham khảo các biến không xác định.

The best kind of music is Alternative Rock
The best music group is Pearl Jam
The best lead vocalist is Chris Cornell
1

7.7. Lab

  1. Sao chép các bạn cùng lớp.py để classfilter.py
  2. Yêu cầu người dùng cho vai trò trên dòng lệnh
  3. Sử dụng chức năng và tích hợp
    >>> def get_square[val]:
    ...     """The callback."""
    ...     return val ** 2
    ...
    >>> def caller[func, val]:
    ...     return func[val]
    ...
    >>> caller[get_square, 5]
    25
    
    2, in danh sách các bạn cùng lớp của bạn với vai trò đó

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

7.1. Các chức năng không có các loại trả lại được tuyên bố. Một chức năng không có câu lệnh trả về rõ ràng trả về không. Trong trường hợp không có đối số và không có giá trị trả về, định nghĩa rất đơn giản. Gọi hàm được thực hiện bằng cách sử dụng toán tử gọi [] sau tên của hàm.Calling the function is performed by using the call operator [] after the name of the function.

Bạn có thể gọi một hàm không có tham số?

Bạn có thể sử dụng một đối số mặc định trong Python nếu bạn muốn gọi chức năng của mình mà không cần truyền tham số. Tham số chức năng lấy giá trị mặc định nếu tham số không được cung cấp trong cuộc gọi hàm.. The function parameter takes the default value if the parameter is not supplied during the function call.

Chức năng Python có cần tham số không?

Các tham số chức năng Đôi khi các chức năng yêu cầu đầu vào để cung cấp dữ liệu cho mã của chúng.Đầu vào này được xác định bằng các tham số.Tham số là các biến được xác định trong định nghĩa hàm.Chúng được gán các giá trị được truyền dưới dạng đối số khi hàm được gọi, ở nơi khác trong mã.

Làm thế nào để bạn gọi một hàm mà không sử dụng tên chức năng để gửi tham số?

Làm thế nào để gọi một hàm mà không sử dụng tên chức năng để gửi tham số?Giải thích: Không có.None.

Chủ Đề