Có bao nhiêu hàm đối số trong Python?

Nếu bạn xem lớp ajax của jQuery, có rất nhiều (khoảng 30) thuộc tính khác có thể được đặt; . May mắn thay, cú pháp theo nghĩa đen của đối tượng làm cho cuộc sống trở nên dễ dàng


C# intellisense cung cấp tài liệu tích cực về các tham số, do đó, không có gì lạ khi thấy sự sắp xếp rất phức tạp của các phương thức quá tải

Các ngôn ngữ được nhập động như python/javascript không có khả năng như vậy, do đó, việc xem các đối số từ khóa và định nghĩa đối tượng bằng chữ thường phổ biến hơn rất nhiều

Tôi thích các định nghĩa theo nghĩa đen của đối tượng (thậm chí trong C#) để quản lý các phương thức phức tạp vì bạn có thể thấy rõ những thuộc tính nào đang được đặt khi một đối tượng được khởi tạo. Bạn sẽ phải thực hiện thêm một chút công việc để xử lý các đối số mặc định nhưng về lâu dài, mã của bạn sẽ dễ đọc hơn rất nhiều. Với các định nghĩa theo nghĩa đen của đối tượng, bạn có thể phá vỡ sự phụ thuộc của mình vào tài liệu để hiểu mã của bạn đang làm gì ngay từ cái nhìn đầu tiên

IMHO, các phương thức quá tải được đánh giá cao

Ghi chú. Nếu tôi nhớ quyền kiểm soát truy cập chỉ đọc sẽ hoạt động đối với các hàm tạo theo nghĩa đen của đối tượng trong C#. Về cơ bản, chúng hoạt động giống như đặt thuộc tính trong hàm tạo


Nếu bạn chưa bao giờ viết bất kỳ mã không tầm thường nào bằng ngôn ngữ dựa trên javaScript được gõ động (python) và/hoặc chức năng/nguyên mẫu, thì tôi thực sự khuyên bạn nên dùng thử. Nó có thể là một trải nghiệm giác ngộ

Trước tiên, có thể đáng sợ khi phá vỡ sự phụ thuộc của bạn vào các tham số cho cách tiếp cận cuối cùng, là tất cả để khởi tạo hàm/phương thức nhưng bạn sẽ học cách làm được nhiều hơn thế với mã của mình mà không cần phải thêm độ phức tạp không cần thiết

Cập nhật

Lẽ ra tôi nên cung cấp các ví dụ để chứng minh việc sử dụng bằng ngôn ngữ được nhập tĩnh nhưng hiện tại tôi không nghĩ trong ngữ cảnh được nhập tĩnh. Về cơ bản, tôi đã làm quá nhiều việc trong ngữ cảnh được nhập động để đột ngột quay lại

Những gì tôi biết là cú pháp định nghĩa đối tượng bằng chữ hoàn toàn có thể thực hiện được trong các ngôn ngữ được nhập tĩnh (ít nhất là trong C# và Java) vì tôi đã sử dụng chúng trước đây. Trong các ngôn ngữ được nhập tĩnh, chúng được gọi là 'Trình khởi tạo đối tượng'. Dưới đây là một số liên kết để hiển thị việc sử dụng chúng trong Java và C#

Câu hỏi 1 - Hàm có 1 đối số

Tạo một chức năng để in tên của riêng bạn

Câu hỏi 2 - Hàm có nhiều đối số

Viết một hàm với hai đầu vào, tên và họ, và in chúng ra.  

Câu hỏi 3 - Truyền danh sách làm đối số

Viết một hàm sẽ in ra tất cả các phần tử bên trong danh sách này

Trong Python, bằng cách thêm

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
5 và
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
0 (một hoặc hai dấu hoa thị) vào đầu tên tham số trong định nghĩa hàm, bạn có thể chỉ định số lượng đối số tùy ý (đối số có độ dài thay đổi) khi gọi hàm

Theo quy ước, tên

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
1 (đối số) và
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
2 (đối số từ khóa) thường được sử dụng, nhưng miễn là
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
5 và
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
0 đứng đầu thì không có vấn đề gì với các tên khác. Mã mẫu dưới đây sử dụng tên
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
1 và
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
2

Bài viết này mô tả các nội dung sau

  • def my_sum2(*args):
        print('args: ', args)
        print('type: ', type(args))
        print('sum : ', sum(args))
    
    my_sum2(1, 2, 3, 4)
    # args:  (1, 2, 3, 4)
    # type:  <class 'tuple'>
    # sum :  10
    
    1. Nhận nhiều đối số dưới dạng Tuple
  • def my_sum2(*args):
        print('args: ', args)
        print('type: ', type(args))
        print('sum : ', sum(args))
    
    my_sum2(1, 2, 3, 4)
    # args:  (1, 2, 3, 4)
    # type:  <class 'tuple'>
    # sum :  10
    
    2. Nhận nhiều đối số từ khóa dưới dạng từ điển

Xem bài viết sau để biết cơ bản về các hàm trong Python

  • Định nghĩa và gọi hàm trong Python (def, return)

Nếu bạn thêm

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
5 và
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
0 khi gọi hàm chứ không phải khi xác định hàm, bạn có thể giải nén và chuyển danh sách cũng như từ điển cho đối số

  • Giải nén và chuyển danh sách, tuple, dict sang đối số hàm trong Python

Liên kết được tài trợ

def my_sum2(*args): print('args: ', args) print('type: ', type(args)) print('sum : ', sum(args)) my_sum2(1, 2, 3, 4) # args: (1, 2, 3, 4) # type: <class 'tuple'> # sum : 10 1. Nhận nhiều đối số dưới dạng Tuple

Nếu bạn xác định một tham số đứng trước

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
5 như
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
1, thì hàm có thể nhận bất kỳ số lượng đối số nào

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
1

nguồn. tranh luận. py

Trong hàm, nhiều đối số được nhận dưới dạng một bộ. Trong ví dụ này, một bộ dữ liệu được truyền cho hàm

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
24 để tính tổng

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10

nguồn. tranh luận. py

Nó có thể được sử dụng với các đối số vị trí

Giá trị được chỉ định sau (bên phải) của đối số vị trí được chuyển dưới dạng một bộ tới

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
25. Nếu chỉ các đối số vị trí được truyền, thì
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
25 sẽ là một bộ trống

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
2

nguồn. tranh luận. py

Bạn có thể xác định

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
1 trước, nhưng trong trường hợp này, các tham số được xác định sau
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
1 phải được chỉ định bằng định dạng từ khóa
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
29 khi gọi hàm

Giá trị cuối cùng không được tự động chuyển đến đối số vị trí và nếu nó không được chỉ định làm đối số từ khóa, thì

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
00 sẽ tăng

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
0

nguồn. tranh luận. py

Sử dụng thuộc tính này, có một kỹ thuật để xác định tham số có tên là

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
5 và sử dụng tham số sau đó làm đối số chỉ từ khóa

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
2

nguồn. tranh luận. py

def my_sum2(*args): print('args: ', args) print('type: ', type(args)) print('sum : ', sum(args)) my_sum2(1, 2, 3, 4) # args: (1, 2, 3, 4) # type: <class 'tuple'> # sum : 10 2. Nhận nhiều đối số từ khóa dưới dạng từ điển

Nếu bạn xác định một tham số đứng trước

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
0 như
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
2, hàm có thể nhận bất kỳ số lượng đối số từ khóa nào

Trong hàm, nhiều đối số từ khóa được nhận dưới dạng một từ điển có

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
05 là tên đối số và có giá trị là giá trị của nó
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
06

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
8

nguồn. kwargs. py

Nó cũng có thể được sử dụng với các đối số vị trí

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
9

nguồn. kwargs. py

Bằng cách thêm

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
0 vào một đối tượng từ điển khi gọi một hàm, bạn có thể chuyển từng phần tử cho từng đối số

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
1

nguồn. kwargs. py

Xem bài viết sau để biết chi tiết về giải nén đối số chức năng

  • Giải nén và chuyển danh sách, tuple, dict sang đối số hàm trong Python

Chỉ có thể xác định tham số có

def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
0 ở cuối danh sách tham số. Nếu bạn xác định một tham số khác sau tham số có
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
0, thì
def my_sum2(*args):
    print('args: ', args)
    print('type: ', type(args))
    print('sum : ', sum(args))

my_sum2(1, 2, 3, 4)
# args:  (1, 2, 3, 4)
# type:  <class 'tuple'>
# sum :  10
20 sẽ tăng

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

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

Hàm có bao nhiêu đối số?

Ngoại trừ các hàm có danh sách đối số có độ dài thay đổi, số lượng đối số trong lệnh gọi hàm phải bằng với số lượng tham số trong định nghĩa hàm. Con số này có thể bằng không. Số đối số tối đa (và các tham số tương ứng) là 253 đối với một hàm .

Một hàm có thể có 3 đối số không?

Chúng ta truyền đối số trong một hàm, chúng ta không thể truyền đối số nào cả, một đối số hoặc nhiều đối số cho một hàm và có thể gọi hàm .

4 loại hàm trong Python là gì?

Sau đây là các loại Hàm Python khác nhau. .
Hàm tích hợp Python
Hàm đệ quy Python
Hàm Lambda trong Python
Các hàm do người dùng định nghĩa trong Python