Hướng dẫn the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

Một đối số vị trí trong Python là một đối số có vị trí quan trọng trong một cuộc gọi chức năng.

Bạn có khả năng đã sử dụng các đối số vị trí mà không nhận thấy.

Ví dụ:

def info(name, age):
    print(f"Hi, my name is {name}. I am  {age * 365.25} days old.")

# This does what is expected
info("Alice", 23.0)

# This doesn't
info(23.0, "Alice")

Đây là tên và tuổi là đối số vị trí.name and age are positional arguments.

Các loại đối số trong Python là gì

Python hỗ trợ 5 loại đối số:

  1. Lập luận vị trí..
  2. Từ khóa đối số..
  3. Bất kỳ số lượng đối số vị trí nào (*args)
  4. Bất kỳ số lượng đối số từ khóa (** kwargs)
  5. Đối số mặc định.

Trong hướng dẫn này, chúng tôi đang xem xét các đối số vị trí. Ngoài ra, chúng tôi sẽ xem qua các đối số từ khóa để đưa ra một điểm quan trọng về các lập luận trong Python.

  • Đối số vị trí có nghĩa là đối số phải được cung cấp ở vị trí chính xác trong một cuộc gọi chức năng. means that the argument must be provided in a correct position in a function call.
  • Với các đối số từ khóa, vị trí không quan trọng, bởi vì một từ khóa được dán nhãn bằng từ khóa.keyword arguments, the position does not matter, because a keyword is labeled with a keyword.

Đối số vị trí trong Python

Một đối số vị trí trong Python là một đối số có vị trí quan trọng trong một cuộc gọi chức năng.

call_func(arg1, arg2, arg3)

Hãy để xác định một chức năng hiển thị thông tin về một người được đặt tên và tuổi:

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")

Bây giờ, hãy để Lừa gọi chức năng này với hai đối số vị trí

info("Alice", 23.0)
3 và
info("Alice", 23.0)
4.

info("Alice", 23.0)

Result:

Hi, my name is Alice. I am 8400.75 days old.

Tại sao vị trí? Bởi vì thứ tự của các đối số quan trọng.

Nếu bạn gọi chức năng này với cùng một đối số theo thứ tự sai, bạn sẽ gặp lỗi:

info(23.0, "Alice")

Output:

Traceback (most recent call last):
  File "example.py", line 5, in 
    info(23.0, "Alice")
  File "example.py", line 3, in info
    print(f"Hi, my name is {name}. I am  {age * 365.25} days old.")
TypeError: can't multiply sequence by non-int of type 'float'

Bây giờ nó coi tuổi tác là một cái tên và tên là tuổi.

Từ khóa đối số trong Python

Một đối số từ khóa trong Python có nghĩa là một đối số hàm có nhãn tên.

call_func(arg_name=arg1)

Hãy cùng quay trở lại ví dụ của phần trước.

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")

Như bạn đã thấy, chức năng này mong đợi hai đối số vị trí

info("Alice", 23.0)
3 và
info("Alice", 23.0)
4.

Điều này có nghĩa là vấn đề đặt hàng.

Nhưng bạn cũng có thể chuyển các đối số trong các đối số từ khóa.

Điều này có nghĩa là bạn đặt tên cho các đối số khi bạn gọi hàm. Hãy để tôi cho bạn thấy điều này có nghĩa là gì:

info(age=23.0, name="Alice")

Output:

call_func(arg1, arg2, arg3)
0

Như bạn có thể thấy, thứ tự đối số không còn quan trọng nữa. Điều này là do bạn đã đưa ra các đối số như các đối số từ khóa. Bằng cách này, thông dịch viên biết một trong những đối số là tuổi và cái tên nào.

Sự kết luận

Hôm nay bạn đã học được những gì là một lập luận vị trí trong Python.

Một đối số vị trí có nghĩa là vị trí của nó quan trọng trong một cuộc gọi chức năng.

Đối số từ khóa là một đối số chức năng 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.

Cảm ơn vì đã đọc.

Mã hóa hạnh phúc!

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ó.

call_func(arg1, arg2, arg3)
1

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

info("Alice", 23.0)
7 và
info("Alice", 23.0)
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
info("Alice", 23.0)
7 and
info("Alice", 23.0)
8 are positional arguments. Then why can we also call it with the keyword argument syntax?

Hướng dẫn the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

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:56Feb 26, 2012 at 4:56

Hướng dẫn the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

1

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:

  • Các đối số từ khóa 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
    info("Alice", 23.0)
    9).
  • 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
    Hi, my name is Alice. I am 8400.75 days old.
    0

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.


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:

call_func(arg1, arg2, arg3)
2

Ví dụ, tham khảo định nghĩa và cuộc gọi sau:

call_func(arg1, arg2, arg3)
3

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

Hướng dẫn the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

Paxdiablopaxdiablopaxdiablo

828K227 Huy hiệu vàng1549 Huy hiệu bạc1918 Huy hiệu đồng227 gold badges1549 silver badges1918 bronze badges

3

Tham số vị trí, tham số từ khóa, tham số bắt buộc và các tham số tùy chọn thường bị nhầm lẫn. Các tham số vị trí không giống như các tham số cần thiết và các tham số từ khóa không giống như các tham số tùy chọn.are not the same as required parameters, and keywords parameters are not the same as optional parameters.

Các tham số vị trí (-only) bị ràng buộc với các đối số vị trí được cung cấp trong một cuộc gọi, đó là theo vị trí. Chúng được giới thiệu trong Python 3,8.

Các tham số từ khóa (-only) được ràng buộc với các đối số từ khóa được cung cấp trong một cuộc gọi, đó là theo tên.

Các tham số từ vị trí hoặc phím từ được ràng buộc với các đối số vị trí hoặc đối số từ khóa được cung cấp trong một cuộc gọi, đó là theo vị trí hoặc theo tên.

Các tham số cần thiết được ràng buộc với các đối số được cung cấp trong một cuộc gọi.

Các tham số tùy chọn bị ràng buộc với các đối số mặc định được cung cấp trong một định nghĩa.

Đây là cú pháp Python để khai báo các tham số:

call_func(arg1, arg2, arg3)
4
  • Tham số vị trí được yêu cầu (vì Python 3.8):

    call_func(arg1, arg2, arg3)
    5
  • Tham số vị trí là tùy chọn (kể từ Python 3.8):

    call_func(arg1, arg2, arg3)
    6
  • Tham số từ khóa được yêu cầu:

    call_func(arg1, arg2, arg3)
    7
  • Tham số từ khóa là tùy chọn:

    call_func(arg1, arg2, arg3)
    8
  • Tham số or-keyword được yêu cầu:

    call_func(arg1, arg2, arg3)
    9
  • Tham số or-keyword định vị là tùy chọn:

    def info(name, age):
        print(f"Hi, my name is {name}. I am {age * 365.25} days old.")
    0

Sự kết luận. - Một tham số có thể được yêu cầu hoặc tùy chọn nhưng không phải cả hai cùng một lúc. Nó cũng có thể là vị trí, từ khóa hoặc cả hai cùng một lúc.not both at the same time. It can also be positional, keyword, or both at the same time.

Hướng dẫn the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

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:

Các đối số từ khóa 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

info("Alice", 23.0)
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

Hi, my name is Alice. I am 8400.75 days old.
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ụ, tham khảo định nghĩa và cuộc gọi sau:

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")
1

Đã trả lời ngày 26 tháng 2 năm 2012 lúc 4:59

Paxdiablopaxdiablo

828K227 Huy hiệu vàng1549 Huy hiệu bạc1918 Huy hiệu đồng

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")
2
  • Tham số vị trí, tham số từ khóa, tham số bắt buộc và các tham số tùy chọn thường bị nhầm lẫn. Các tham số vị trí không giống như các tham số cần thiết và các tham số từ khóa không giống như các tham số tùy chọn.
  • Các tham số vị trí (-only) bị ràng buộc với các đối số vị trí được cung cấp trong một cuộc gọi, đó là theo vị trí. Chúng được giới thiệu trong Python 3,8.

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

Hi, my name is Alice. I am 8400.75 days old.
9 trong danh sách tham số (ví dụ từ đây).

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")
3

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ự

info(23.0, "Alice")
0.

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")
4

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.7125 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:

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")
5

Hướng dẫn the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

Không có

9.1392 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 the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

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

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")
6

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 the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

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.

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")
7

Hướng dẫn the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

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 the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

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í:

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")
8

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.5102 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:

def info(name, age):
    print(f"Hi, my name is {name}. I am {age * 365.25} days old.")
9

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:

info("Alice", 23.0)
0

Để 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:

info("Alice", 23.0)
1

Để 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:

info("Alice", 23.0)
2

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

Hướng dẫn the meaning of the positional parameter is determined by its python - ý nghĩa của tham số vị trí được xác định bởi python của nó

MaggyeromaggyeroMaggyero

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

Tham số vị trí trong Python là gì?

Một đối số vị trí trong Python là một đối số có vị trí quan trọng trong một cuộc gọi chức năng.Bạn có khả năng đã sử dụng các đối số vị trí mà không nhận thấy.Ví dụ: thông tin def (tên, tuổi): in (f "hi, tên tôi là {name}.an argument whose position matters in a function call. You have likely used positional arguments without noticing. For instance: def info(name, age): print(f"Hi, my name is {name}.

Tham số vị trí là gì?

Một tham số vị trí là một tham số được biểu thị bằng một hoặc nhiều chữ số, ngoài chữ số 0.Các tham số vị trí được gán từ các đối số của shell khi nó được gọi và có thể được chỉ định lại bằng lệnh set buildin.a parameter denoted by one or more digits, other than the single digit 0 . Positional parameters are assigned from the shell's arguments when it is invoked, and may be reassigned using the set builtin command.

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

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ỗi đối số vị trí trong Python là gì?

Cú pháp Python: Đối số vị trí tuân theo đối số từ khóa xảy ra khi bạn cố gắng chỉ định đối số vị trí sau một đối số từ khóa trong lệnh gọi hàm.occurs when you try to specify a positional argument after a keyword argument in a function call.