Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

Đối số từ khóa và vị trí

Các hàm Python có thể chứa hai loại đối số: đối số vị trí và đối số từ khóa. Đối số vị trí phải được bao gồm theo đúng thứ tự. Đối số từ khóa được bao gồm với một từ khóa và bằng dấu.

Lập luận vị trí

Đối số là một biến, giá trị hoặc đối tượng được truyền đến một hàm hoặc phương thức làm đầu vào. Đối số vị trí là những đối số cần được đưa vào vị trí hoặc trật tự thích hợp.

Đối số vị trí đầu tiên luôn cần được liệt kê đầu tiên khi hàm được gọi. Đối số vị trí thứ hai cần được liệt kê thứ hai và đối số vị trí thứ ba được liệt kê thứ ba, v.v.

Một ví dụ về các đối số vị trí có thể được nhìn thấy trong hàm

function(keyword=value)
7 của Python. Hàm này trả về một số phức với một thuật ngữ thực và một thuật ngữ tưởng tượng. Thứ tự mà các số được chuyển đến hàm
function(keyword=value)
7 xác định số nào là thuật ngữ thực và số nào là thuật ngữ tưởng tượng.

Nếu số phức

function(keyword=value)
9 được tạo, hai đối số vị trí là số
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
0 và
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
1. Vì các đối số vị trí,
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
0 phải được liệt kê trước và
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
1 phải được liệt kê thứ hai.

Mặt khác, nếu số phức
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
4 cần được tạo,
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
1 cần được liệt kê đầu tiên và
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
0 được liệt kê thứ hai. Viết các đối số giống nhau theo một thứ tự khác tạo ra một kết quả khác.

Đối số vị trí được chỉ định bởi một điều đáng tin cậy

Đối số vị trí cũng có thể được truyền đến các chức năng bằng cách sử dụng một đối tượng có thể lặp lại. Ví dụ về các đối tượng có thể lặp lại trong Python bao gồm danh sách và bộ dữ liệu. Cú pháp chung để sử dụng là:

function(*iterable)

Trong đó

keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
7 là tên của hàm và
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
8 là tên của ký tự có thể đi trước được đặt trước dấu hoa thị
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
9.

Một ví dụ về việc sử dụng danh sách để chuyển các đối số vị trí cho hàm

function(keyword=value)
7 bên dưới. Lưu ý ký tự Asterisk
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
9 được bao gồm trước đối số
keyword_dict = {'real': 3, 'imag': 5}
complex(**keyword_dict)
2.

In [3]:

term_list = [3, 5]
complex(*term_list)

Từ khóa đối số

Đối số từ khóa là một đối số được truyền đến một hàm hoặc phương thức được đi trước bởi một từ khóa và một dấu bằng. Hình thức chung là:

function(keyword=value)

Trong đó

keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
7 là tên hàm,
keyword_dict = {'real': 3, 'imag': 5}
complex(**keyword_dict)
4 là đối số từ khóa và giá trị là giá trị hoặc đối tượng được truyền dưới dạng từ khóa đó.

Hàm phức tạp của Python cũng có thể chấp nhận hai đối số từ khóa. Hai đối số từ khóa là

keyword_dict = {'real': 3, 'imag': 5}
complex(**keyword_dict)
5 và
keyword_dict = {'real': 3, 'imag': 5}
complex(**keyword_dict)
6. Để tạo số phức
function(keyword=value)
9,
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
0 và
keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
1 có thể được chuyển đến hàm vì các giá trị được gán cho các đối số từ khóa
keyword_dict = {'real': 3, 'imag': 5}
complex(**keyword_dict)
5 và
keyword_dict = {'real': 3, 'imag': 5}
complex(**keyword_dict)
6.

Các đối số từ khóa được truyền đến các chức năng sau bất kỳ đối số vị trí cần thiết. Nhưng thứ tự của một đối số từ khóa so với đối số từ khóa khác không quan trọng. Lưu ý làm thế nào cả hai phần của mã dưới đây tạo ra cùng một đầu ra.

Từ khóa đối số được chỉ định bởi một từ điển

Các đối số từ khóa cũng có thể được truyền đến các chức năng bằng từ điển Python. Từ điển phải chứa các từ khóa dưới dạng các khóa và các giá trị là giá trị. Hình thức chung là:

keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)

Trong đó

keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
7 là tên của hàm và
def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
3 là tên của từ điển chứa các từ khóa và giá trị trước ký tự Double Asterisk
def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
4. Lưu ý rằng các từ khóa được gán làm khóa trong từ điển phải được bao quanh bởi các trích dẫn
def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
5. Một ví dụ về việc sử dụng từ điển để chuyển các đối số từ khóa cho hàm
function(keyword=value)
7 bên dưới:

Trong & nbsp; [7]:

keyword_dict = {'real': 3, 'imag': 5}
complex(**keyword_dict)

122

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Dựa vào cái này

Đối số vị trí là một tên không được theo sau bởi một dấu hiệu bằng nhau (=) và giá trị mặc định.

Một đối số từ khóa được theo sau bởi một dấu hiệu bằng nhau và một biểu thức cho giá trị mặc định của nó.

def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)

Câu hỏi. Tôi cho rằng cả

def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
7 và
def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
8 đều là đối số vị trí. Vậy thì tại sao chúng ta cũng có thể gọi nó với cú pháp đối số từ khóa?
I assume that both
def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
7 and
def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
8 are positional arguments. Then why can we also call it with the keyword argument syntax?

Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

Maggyero

5.0563 Huy hiệu vàng33 Huy hiệu bạc53 Huy hiệu Đồng3 gold badges33 silver badges53 bronze badges

Đối số vị trí và từ khóa trong Python là gì?Feb 26, 2012 at 4:56

Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

1

Đối số vị trí có nghĩa là vị trí của nó quan trọng trong một hàm gọi. Đối số từ khóa là một đối số hàm với nhãn tên. Chuyển các đối số như đối số từ khóa có nghĩa là thứ tự không quan trọng.

  • Sự khác biệt giữa các tham số vị trí và từ khóa là gì?
  • Đối số vị trí là một tên không được theo sau bởi một dấu hiệu bằng nhau (=) và giá trị mặc định. Đối số từ khóa được theo sau bởi một dấu hiệu bằng nhau và một biểu thức cho giá trị mặc định của nó.

3 loại đối số trong Python là gì?


Do đó, chúng tôi kết luận rằng các đối số chức năng Python và ba loại đối số của nó cho các chức năng. Đây là những đối số mặc định, từ khóa và tùy ý.

def process_a_and_b(a, b):
   blah_blah_blah()

process_a_and_b(1, 2)
process_a_and_b(b=2, a=1)

4 loại đối số trong Python là gì?

def fn(a, b, c=1):        # a/b required, c optional.
    return a * b + c

print(fn(1, 2))            # returns 3, positional and default.
print(fn(1, 2, 3))         # returns 5, positional.
print(fn(c=5, b=2, a=2))   # returns 9, named.
print(fn(b=2, a=2))        # returns 5, named and default.
print(fn(5, c=2, b=1))     # returns 7, positional and named.
print(fn(8, b=0))          # returns 1, positional, named and default.

Trong Python, chúng ta có 4 loại đối số chức năng sau ..Feb 26, 2012 at 4:59

Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

Đối số mặc định ..paxdiablo

Đối số từ khóa (đối số được đặt tên).227 gold badges1550 silver badges1918 bronze badges

3

Đối số vị trí ..are not the same as required parameters, and keywords parameters are not the same as optional parameters.

Các đối số tùy ý (đối số có độ dài thay đổi *args và ** kwargs).

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.

Dựa vào cái này

Đối số vị trí là một tên không được theo sau bởi một dấu hiệu bằng nhau (=) và giá trị mặc định.

Một đối số từ khóa được theo sau bởi một dấu hiệu bằng nhau và một biểu thức cho giá trị mặc định của nó.

Câu hỏi. Tôi cho rằng cả

def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
7 và
def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
8 đều là đối số vị trí. Vậy thì tại sao chúng ta cũng có thể gọi nó với cú pháp đối số từ khóa?

def f(positional_parameter, /, positional_or_keyword_parameter, *, keyword_parameter):
    pass
  • Maggyero

    def f(a, /):
        pass
    
    
    f()  # error, argument is required
    f(1)  # allowed, positional argument
    f(a=1)  # error, keyword argument
    
  • hỏi ngày 26 tháng 2 năm 2012 lúc 4:56

    term_list = [3, 5]
    complex(*term_list)
    
    0
  • Văn bản mà bạn trích dẫn dường như bị nhầm lẫn về hai điều hoàn toàn khác nhau:

    term_list = [3, 5]
    complex(*term_list)
    
    1
  • Đối số vị trí và từ khóa là một tính năng của các cuộc gọi đến một hàm (xem Phần tham chiếu Python

    def rectangleArea(width, height):
        return width * height
    
        
    print rectangleArea(width=1, height=2)
    
    9).

    term_list = [3, 5]
    complex(*term_list)
    
    2
  • Giá trị mặc định là một tính năng của các định nghĩa chức năng, theo phần

    def process_a_and_b(a, b):
       blah_blah_blah()
    
    process_a_and_b(1, 2)
    process_a_and_b(b=2, a=1)
    
    0

    term_list = [3, 5]
    complex(*term_list)
    
    3
  • Tôi nghi ngờ những người tập hợp các khóa học đó không hoàn toàn quen thuộc với Python :-) Do đó liên kết mà bạn cung cấp không phải là chất lượng rất tốt.

    term_list = [3, 5]
    complex(*term_list)
    
    4

Trong cuộc gọi của bạn đến chức năng của bạn, bạn đang sử dụng tính năng "đối số từ khóa" (trong đó đối số được đặt tên thay vì dựa vào vị trí của nó). Không có điều đó, các giá trị bị ràng buộc với các tên chỉ dựa trên đơn đặt hàng. Vì vậy, trong ví dụ này, hai cuộc gọi dưới đây là tương đương:not both at the same time. It can also be positional, keyword, or both at the same time.

Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

Maggyero

5.0563 Huy hiệu vàng33 Huy hiệu bạc53 Huy hiệu Đồng3 gold badges33 silver badges53 bronze badges

hỏi ngày 26 tháng 2 năm 2012 lúc 4:56Sep 6, 2019 at 9:09

3

Văn bản mà bạn trích dẫn dường như bị nhầm lẫn về hai điều hoàn toàn khác nhau:

Đối số vị trí và từ khóa là một tính năng của các cuộc gọi đến một hàm (xem Phần tham chiếu Python

def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
9).Feb 26, 2012 at 5:10

Giá trị mặc định là một tính năng của các định nghĩa chức năng, theo phần

def process_a_and_b(a, b):
   blah_blah_blah()

process_a_and_b(1, 2)
process_a_and_b(b=2, a=1)
0chroipahtz

Tôi nghi ngờ những người tập hợp các khóa học đó không hoàn toàn quen thuộc với Python :-) Do đó liên kết mà bạn cung cấp không phải là chất lượng rất tốt.1 gold badge6 silver badges10 bronze badges

1

Trong cuộc gọi của bạn đến chức năng của bạn, bạn đang sử dụng tính năng "đối số từ khóa" (trong đó đối số được đặt tên thay vì dựa vào vị trí của nó). Không có điều đó, các giá trị bị ràng buộc với các tên chỉ dựa trên đơn đặt hàng. Vì vậy, trong ví dụ này, hai cuộc gọi dưới đây là tương đương:parameter is a named entity in the function/method definition that specifies an argument. An argument is a value passed to a function.

Ví dụ,

term_list = [3, 5]
complex(*term_list)
5

def process_a_and_b(a, b):
   blah_blah_blah()

process_a_and_b(1, 2)
process_a_and_b(b=2, a=1)
1 là các tham số hàm và
def process_a_and_b(a, b):
   blah_blah_blah()

process_a_and_b(1, 2)
process_a_and_b(b=2, a=1)
2 là các đối số được truyền cho hàm. Khi bạn nói đối số vị trí, bạn đang nói về các đối số, điều này không liên quan gì đến định nghĩa chức năng.
def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
7 và
def rectangleArea(width, height):
    return width * height

    
print rectangleArea(width=1, height=2)
8 là (theo mặc định trong Python) tham số vị trí hoặc tham số từ khóa (được gọi là tham số vị trí hoặc từ khóa). Do đó, bạn có thể vượt qua các đối số ở vị trí hoặc từ khóa.

Cách bạn đang gọi/chuyển giá trị cho hàm xác định xem chúng là đối số vị trí hoặc đối số từ khóa.

Đối với chức năng

def process_a_and_b(a, b):
   blah_blah_blah()

process_a_and_b(1, 2)
process_a_and_b(b=2, a=1)
5, chúng ta có thể gọi nó như vậy như vậy:

term_list = [3, 5]
complex(*term_list)
6
  • Trong cuộc gọi đầu tiên, chúng tôi vượt qua các giá trị ở vị trí: 1 được truyền đến chiều cao và 2 đến chiều rộng. Đó là, Python Infers rằng khi bạn nói
    def process_a_and_b(a, b):
       blah_blah_blah()
    
    process_a_and_b(1, 2)
    process_a_and_b(b=2, a=1)
    
    6, chúng tôi có nghĩa là chiều cao là 1 và chiều rộng là 2 dựa trên vị trí chúng được thông qua (tức là, trong định nghĩa hàm, tham số đầu tiên là
    def rectangleArea(width, height):
        return width * height
    
        
    print rectangleArea(width=1, height=2)
    
    8 và thứ hai là
    def rectangleArea(width, height):
        return width * height
    
        
    print rectangleArea(width=1, height=2)
    
    7).
  • Trong cuộc gọi thứ hai, chúng tôi vượt qua các giá trị bằng từ khóa. Chúng tôi đang gợi ý cho Python mà tham số mà chúng tôi đang chuyển đối số cho. Trong ví dụ thứ hai, chúng tôi lật thứ tự của các đối số, nhưng chúng tôi nói với Python rằng chiều cao vẫn là 1 và chiều rộng vẫn là 2. Cả hai cuộc gọi có cùng một kết quả.

Chỉ có vị trí và chỉ từ khóa

Điều không nhiều người biết là bạn có thể chỉ định tham số chỉ có vị trí bằng cách sử dụng

def process_a_and_b(a, b):
   blah_blah_blah()

process_a_and_b(1, 2)
process_a_and_b(b=2, a=1)
9 trong danh sách tham số (ví dụ từ đây).

term_list = [3, 5]
complex(*term_list)
7

Tương tự, bạn cũng có thể có các tham số chỉ dành cho từ khóa bằng cách sử dụng ký tự

keyword_dict = {'keyword1': value1, 'keyword2': value2}
function(**keyword_dict)
9.

term_list = [3, 5]
complex(*term_list)
8

Cuối cùng, chúng tôi cũng có var-định vị và var-keyword (a.k.a *args và ** kwargs tương ứng). Có nghĩa là, bạn có thể có chuỗi các đối số vị trí hoặc đối số từ khóa được truyền đến hàm.

Đã trả lời ngày 23 tháng 7 năm 2020 lúc 20:59Jul 23, 2020 at 20:59

RafaelrafaelRafael

6.7225 huy hiệu vàng41 Huy hiệu bạc48 Huy hiệu đồng5 gold badges41 silver badges48 bronze badges

1

Đối số vị trí có thể được gọi là sử dụng các giá trị theo thứ tự hoặc bằng cách đặt tên cho từng giá trị. Ví dụ, cả ba điều sau đây sẽ hoạt động theo cùng một cách:

term_list = [3, 5]
complex(*term_list)
9

Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

Không có

9.1692 Huy hiệu vàng46 Huy hiệu bạc65 Huy hiệu Đồng2 gold badges46 silver badges65 bronze badges

Đã trả lời ngày 26 tháng 2 năm 2012 lúc 5:09Feb 26, 2012 at 5:09

Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

David Robinsondavid RobinsonDavid Robinson

75,7K15 Huy hiệu vàng162 Huy hiệu bạc180 Huy hiệu Đồng15 gold badges162 silver badges180 bronze badges

1

Đối số vị trí: Đối số được truyền đến một hàm theo thứ tự vị trí chính xác. Dưới đây chương trình hiểu các đối số vị trí của một hàm

function(keyword=value)
0

Giả sử, chúng tôi đã vượt qua 'đến' đầu tiên, '' thứ hai ', sau đó kết quả sẽ được đưa ra. Ngoài ra, hãy gọi hàm 3 chuỗi trở thành lỗi.

Đã trả lời ngày 22 tháng 5 năm 2018 lúc 13:16May 22, 2018 at 13:16

Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

Hiểu các đối số từ khóa của một hàm.

Đối số từ khóa là các đối số xác định các tham số bằng tên của chúng.

function(keyword=value)
1

Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

Eric Aya

69.1K35 Huy hiệu vàng176 Huy hiệu bạc247 Huy hiệu đồng35 gold badges176 silver badges247 bronze badges

Đã trả lời ngày 22 tháng 5 năm 2018 lúc 13:49May 22, 2018 at 13:49

Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

Tôi cho rằng cả chiều rộng và chiều cao đều là đối số vị trí. Vậy thì tại sao chúng ta cũng có thể gọi nó với cú pháp đối số từ khóa?

Để ngăn chặn điều đó, bạn có thể sử dụng các đối số chỉ có vị trí:

function(keyword=value)
2

Thông báo lỗi sẽ như sau:

TypeError: Reformlearea () có một số đối số chỉ có vị trí được truyền dưới dạng đối số từ khóa: 'Chiều rộng, chiều cao'

Đã trả lời ngày 23 tháng 9 năm 2021 lúc 10:24Sep 23, 2021 at 10:24

Lerner Zhanglerner ZhangLerner Zhang

5.5202 Huy hiệu vàng42 Huy hiệu bạc58 Huy hiệu Đồng2 gold badges42 silver badges58 bronze badges

Dưới đây là một số thông tin bổ sung để hoàn thành câu trả lời tuyệt vời của @Nazime Lakehal.

Một tham số vị trí là tùy chọn không thể được theo sau bởi một tham số vị trí hoặc tham số từ vị trí hoặc thông số keyword được yêu cầu:

function(keyword=value)
3

Một tham số từ vị trí hoặc phím key không thể được theo sau bởi một tham số từ vị trí hoặc từ khóa được yêu cầu:

function(keyword=value)
4

Để liên kết một tham số vị trí là tùy chọn, tất cả các tham số vị trí trước đó là tùy chọn phải được ràng buộc, làm cho tất cả chúng được yêu cầu một cách hiệu quả. Đó có thể là nguồn gốc của sự nhầm lẫn của các tham số vị trí với các tham số cần thiết:

function(keyword=value)
5

Để liên kết một tham số từ khóa hoặc tham số từ vị trí hoặc thông số từ vị trí là tùy chọn, tất cả các tham số từ khóa khác và các tham số từ vị trí hoặc thông số key không phải bị ràng buộc. Đó có thể là nguồn gốc của sự nhầm lẫn của các tham số từ khóa với các tham số tùy chọn:

function(keyword=value)
6

Đã trả lời ngày 6 tháng 10 lúc 7:30Oct 6 at 7:30

Hướng dẫn what is positional argument and keyword argument in python? - đối số vị trí và đối số từ khóa trong python là gì?

MaggyeromaggyeroMaggyero

5.0563 Huy hiệu vàng33 Huy hiệu bạc53 Huy hiệu Đồng3 gold badges33 silver badges53 bronze badges

Đối số vị trí và từ khóa trong Python là gì?

Đối số vị trí có nghĩa là vị trí của nó quan trọng trong một hàm gọi. Đối số từ khóa là một đối số hàm với nhãn tên.Chuyển các đối số như đối số từ khóa có nghĩa là thứ tự không quan trọng. A keyword argument is a function argument with a name label. Passing arguments as keyword arguments means order does not matter.

Sự khác biệt giữa các tham số vị trí và từ khóa là gì?

Đối số vị trí là một tên không được theo sau bởi một dấu hiệu bằng nhau (=) và giá trị mặc định. Đối số từ khóa được theo sau bởi một dấu hiệu bằng nhau và một biểu thức cho giá trị mặc định của nó. A keyword argument is followed by an equal sign and an expression that gives its default value.

3 loại đối số trong Python là gì?

Do đó, chúng tôi kết luận rằng các đối số chức năng Python và ba loại đối số của nó cho các chức năng.Đây là những đối số mặc định, từ khóa và tùy ý.default, keyword, and arbitrary arguments.

4 loại đối số trong Python là gì?

Trong Python, chúng ta có 4 loại đối số chức năng sau ...
Đối số mặc định ..
Đối số từ khóa (đối số được đặt tên).
Đối số vị trí ..
Các đối số tùy ý (đối số có độ dài thay đổi *args và ** kwargs).