Hướng dẫn how to pass a list to a class in python - cách chuyển một danh sách đến một lớp trong python

Tôi không hiểu tại sao nó hoạt động với một đối số INT nhưng không phải với một danh sách.

Không, nó không:

Traceback [most recent call last]:
  File "method.py", line 10, in 
    Draw.platforms[locations]
  File "method.py", line 8, in platforms
    print[self.locations]
AttributeError: 'int' object has no attribute 'locations'

Lý do tại sao nó không hoạt động trong cả hai trường hợp là vì bạn không bao giờ xây dựng bất kỳ trường hợp nào của lớp --- bạn chỉ cần gọi một phương thức ["công khai"] thuộc lớp. Vì vậy, khi platforms[] cố gắng sử dụng self.locations, nó không tồn tại.

Bạn có thể khởi tạo đối tượng trước:

locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]

Hoặc, nếu bạn không quan tâm đến việc giữ ví dụ Draw xung quanh:

locations = [0, 1]

Draw[locations].platforms[]

Hoặc bạn thay đổi phương thức để nó chấp nhận một đối số thay thế: thay vào đó

class Draw:
    def platforms[value]:
        print[value]

Nhưng bây giờ về cơ bản nó là một phương pháp tĩnh và bạn chỉ sử dụng lớp làm không gian tên.

W3Schools được tối ưu hóa cho việc học và đào tạo. Ví dụ có thể được đơn giản hóa để cải thiện việc đọc và học tập. Hướng dẫn, tài liệu tham khảo và ví dụ được xem xét liên tục để tránh lỗi, nhưng chúng tôi không thể đảm bảo tính chính xác đầy đủ của tất cả các nội dung. Trong khi sử dụng W3Schools, bạn đồng ý đã đọc và chấp nhận các điều khoản sử dụng, cookie và chính sách bảo mật của chúng tôi.

Bản quyền 1999-2022 bởi dữ liệu refsnes. Đã đăng ký Bản quyền. W3Schools được cung cấp bởi W3.CSS.
W3Schools is Powered by W3.CSS.

Trong bài viết này, chúng tôi sẽ học cách chuyển một danh sách cho một chức năng để hoạt động như nhiều đối số trong Python. Chúng tôi sẽ hiểu cách tiếp cận cơ bản với một số mã tùy chỉnh. Trước tiên chúng ta hãy có một cái nhìn nhanh về danh sách trong Python.

Danh sách Python

Python có một loại dữ liệu tích hợp được gọi là Danh sách. Nó giống như một tập hợp các mảng với phương pháp khác nhau. Dữ liệu bên trong danh sách có thể thuộc bất kỳ loại nói, số nguyên, chuỗi hoặc giá trị float hoặc thậm chí là loại danh sách. Danh sách sử dụng các giá trị được phân tách bằng dấu phẩy trong khung vuông để lưu trữ dữ liệu. Danh sách có thể được xác định bằng bất kỳ tên biến nào và sau đó gán các giá trị khác nhau cho danh sách trong khung vuông. Danh sách được đặt hàng, thay đổi và cho phép các giá trị trùng lặp.

list1 = ["Ram", "Arun", "Kiran"]
list2 = [16, 78, 32, 67]
list3 = ["apple", "mango", 16, "cherry", 3.4]

Chuyển danh sách cho một hàm dưới dạng nhiều đối số

Trong Python, các chức năng có thể không có đối số, một đối số duy nhất hoặc nhiều hơn một đối số. Chúng ta có thể vượt qua một chuỗi, số nguyên, danh sách, bộ dữ liệu, một từ điển, vv như các đối số chức năng trong một cuộc gọi hàm. Hàm chấp nhận chúng theo cùng một định dạng và trả về đầu ra mong muốn. Bây giờ, chúng tôi muốn vượt qua một danh sách chứa nhiều yếu tố và các yếu tố này hoạt động như nhiều đối số của một hàm. Khái niệm này về một danh sách duy nhất các yếu tố là nhiều đối số được gọi là danh sách đối số giải nén. Chúng tôi sử dụng

locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
0 để giải nén đối số duy nhất thành nhiều đối số. Chúng tôi sử dụng toán tử giải nén
locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
1 khi các đối số không có sẵn riêng biệt.Unpacking Argument List. We use
locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
0 to unpack the single argument into multiple arguments. We use the unpacking operator
locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
1 when arguments are not available separately.

Ví dụ: chức năng

locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
2 trong Python lưu trữ ba đối số khác nhau - bắt đầu, dừng và bước. Nếu người dùng không muốn nhập riêng các giá trị, anh ta có thể viết cuộc gọi chức năng với toán tử
locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
1 để giải nén các đối số ra khỏi danh sách hoặc tuple.
locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
2 function in Python stores three different arguments - start, stop, and step. If the user does not want to input the values separately, he can write the function call with the
locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
1 operator to unpack the arguments out of a list or tuple.

Example:

Trong ví dụ này, my_list là có thể được thông qua như một đối số. Định nghĩa chức năng coi danh sách này là nhiều đối số. Các vòng lặp chương trình Python qua danh sách đã cho và sử dụng từng yếu tố của danh sách làm đối số riêng cho hàm. Mã dưới đây chỉ giải nén danh sách bằng cú pháp

locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
0 khi xác định chức năng.my_list is iterable that is passed as an argument. Function definition treats this list as multiple arguments. Python program loops over the given list and uses each element of the list as a separate argument to the function. The below code just unpacks the list using the
locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
0 syntax when defining the function.

#function definition
def add[*params]:
    sum = 0
    for num in params:
        sum += num
    print[sum]
    
#input list
my_list = [1,2,3]
#function call
add[*my_list]


6

Example:

Phương pháp này rất hữu ích khi các yếu tố không được xác định trước. Chúng ta có thể chuyển nhiều phần tử cho hàm Python mà không cần định trước các tham số chính thức. Ví dụ này sử dụng

locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
0 để tránh mã thất bại khi người dùng không biết có bao nhiêu đối số sẽ được gửi đến hàm. Bạn có thể sử dụng phương pháp này khi các phần tử trong danh sách không được xác định trước.

def calculateTotalSum[*arguments]: 
    totalSum = 0
    for number in arguments: 
        totalSum += number 
    print[totalSum] 
  
# function call
calculateTotalSum[5,4,3,2,1] 


15

Sự kết luận

Trong bài viết này, chúng tôi đã sử dụng các ví dụ khác nhau để hiểu làm thế nào chúng ta có thể giải nén các yếu tố danh sách để sử dụng chúng như nhiều đối số. Chúng tôi đã thảo luận về cú pháp

locations = [0, 1]

drawer = Draw[locations]
drawer.platforms[]
0 trong Python để giải nén các lập luận của danh sách và sử dụng chúng một cách riêng biệt trong cơ thể chức năng.

Bạn có thể chuyển một danh sách vào một chức năng Python?

Bạn có thể gửi bất kỳ loại dữ liệu nào của đối số đến một hàm [chuỗi, số, danh sách, từ điển, v.v.] và nó sẽ được coi là cùng một loại dữ liệu bên trong hàm. [string, number, list, dictionary etc.], and it will be treated as the same data type inside the function.

Làm thế nào để bạn khởi tạo một danh sách trong một lớp Python?

Bạn có thể khởi tạo một danh sách trong Python bằng dấu ngoặc vuông, phương thức danh sách [], phép nhân danh sách và khả năng hiểu danh sách.Dấu ngoặc vuông cho phép bạn khởi tạo một danh sách trống hoặc danh sách chứa một số giá trị mặc định.Phương thức danh sách [] hoạt động theo cách tương tự như dấu ngoặc vuông.using square brackets, the list[] method, list multiplication, and a list comprehension. Square brackets let you initialize an empty list, or a list which contains some default values. The list[] method works in the same way as square brackets.

Làm thế nào để bạn nhập danh sách vào một chức năng trong Python?

Nhập một danh sách bằng hàm input [] và phạm vi []..
Đầu tiên, tạo một danh sách trống ..
Tiếp theo, chấp nhận kích thước danh sách từ người dùng [nghĩa là, số lượng các phần tử trong danh sách].
Chạy vòng lặp cho đến kích thước của danh sách bằng cách sử dụng hàm cho vòng lặp và phạm vi [] ..
Sử dụng hàm input [] để nhận số từ người dùng ..

Chúng ta có thể chuyển danh sách cho chức năng không?

Chúng ta có thể vượt qua một chuỗi, số nguyên, danh sách, bộ dữ liệu, một từ điển v.v ... Các đối số chức năng trong một cuộc gọi hàm.Hàm chấp nhận chúng theo cùng một định dạng và trả về đầu ra mong muốn. as function arguments during a function call. The function accepts them in the same format and returns the desired output.

Bài Viết Liên Quan

Chủ Đề