Hướng dẫn how do you create multiple objects in a class python? - làm thế nào để bạn tạo nhiều đối tượng trong một lớp python?

Giả sử bạn phải tạo 10 đối tượng lớp trong Python và làm điều gì đó với chúng, như:

obj_1 = MyClass[]
other_object.add[obj_1]
obj_2 = MyClass[]
other_object.add[obj_2]
.
.
.
obj_10 = MyClass[]
other_object.add[obj_10]

Làm thế nào bạn sẽ làm điều đó với một vòng lặp và gán một biến cho mỗi đối tượng [như

obj_1.do_sth[]
2], để mã sẽ ngắn hơn? Mỗi đối tượng phải được truy cập bên ngoài vòng lặp

obj_1.do_sth[]

Đã hỏi ngày 6 tháng 2 năm 2014 lúc 9:34Feb 6, 2014 at 9:34

Alwbtcalwbtcalwbtc

26.7K59 Huy hiệu vàng129 Huy hiệu bạc185 Huy hiệu Đồng59 gold badges129 silver badges185 bronze badges

1

Câu hỏi này được hỏi mỗi ngày trong một số biến thể. Câu trả lời là: Giữ dữ liệu của bạn ra khỏi tên biến của bạn và đây là bài đăng trên blog bắt buộc.

Trong trường hợp này, tại sao không lập một danh sách các OBJ?

objs = [MyClass[] for i in range[10]]
for obj in objs:
    other_object.add[obj]

objs[0].do_sth[]

Đã trả lời ngày 6 tháng 2 năm 2014 lúc 9:39Feb 6, 2014 at 9:39

REMCOGERLICHREMCOGERLICHRemcoGerlich

29,7K5 Huy hiệu vàng63 Huy hiệu bạc78 Huy hiệu Đồng5 gold badges63 silver badges78 bronze badges

2

Bạn có thể sử dụng danh sách để xác định nó.

objs = list[]
for i in range[10]:
    objs.append[MyClass[]]

Đã trả lời ngày 6 tháng 2 năm 2014 lúc 9:40Feb 6, 2014 at 9:40

3

Tạo một từ điển như nó đã đề cập, nhưng trong trường hợp này, mỗi khóa có tên của tên đối tượng mà bạn muốn tạo. Sau đó, giá trị được đặt làm lớp bạn muốn khởi tạo, xem ví dụ:

class MyClass:
   def __init__[self, name]:
       self.name = name
       self.checkme = 'awesome {}'.format[self.name]
...

instanceNames = ['red', 'green', 'blue']

# Here you use the dictionary
holder = {name: MyClass[name=name] for name in instanceNames}

Sau đó, bạn chỉ cần gọi phím chủ và bạn sẽ có tất cả các thuộc tính và phương thức của lớp bạn có sẵn cho bạn.

holder['red'].checkme

output:

'awesome red'

Đã trả lời ngày 18 tháng 1 năm 2017 lúc 13:11Jan 18, 2017 at 13:11

JobeljobelJobel

6136 Huy hiệu bạc12 Huy hiệu Đồng6 silver badges12 bronze badges

0

Sử dụng từ điển cho các tên duy nhất mà không có danh sách tên:

class MyClass:
    def __init__[self, name]:
        self.name = name
        self.pretty_print_name[]

    def pretty_print_name[self]:
    print["This object's name is {}.".format[self.name]]

my_objects = {}
for i in range[1,11]:
    name = 'obj_{}'.format[i]
    my_objects[name] = my_objects.get[name, MyClass[name = name]]

Output:

"This object's name is obj_1."
"This object's name is obj_2."
"This object's name is obj_3."
"This object's name is obj_4."
"This object's name is obj_5."
"This object's name is obj_6."
"This object's name is obj_7."
"This object's name is obj_8."
"This object's name is obj_9."
"This object's name is obj_10."

Đã trả lời ngày 29 tháng 5 năm 2020 lúc 2:35May 29, 2020 at 2:35

Tôi hy vọng đây là thứ bạn đang tìm kiếm.

class Try:
    def do_somthing[self]:
        print 'Hello'

if __name__ == '__main__':
    obj_list = []
    for obj in range[10]:
        obj = Try[]
        obj_list.append[obj]

    obj_list[0].do_somthing[]

Output:

obj_1.do_sth[]
0

Đã trả lời ngày 6 tháng 2 năm 2014 lúc 9:45Feb 6, 2014 at 9:45

Tanveer Alamtanveer AlamTanveer Alam

5.0573 Huy hiệu vàng20 Huy hiệu bạc42 Huy hiệu đồng3 gold badges20 silver badges42 bronze badges

2

Cho đến nay, chúng tôi đã xác định một lớp, xây dựng một đối tượng duy nhất, sử dụng đối tượng đó, và sau đó ném đối tượng đi. Tuy nhiên, sức mạnh thực sự trong lập trình hướng đối tượng xảy ra khi chúng ta xây dựng nhiều trường hợp của lớp.

Khi chúng ta xây dựng nhiều đối tượng từ lớp của chúng ta, chúng ta có thể muốn thiết lập các giá trị ban đầu khác nhau cho từng đối tượng. Chúng ta có thể chuyển dữ liệu cho các hàm tạo để cung cấp cho mỗi đối tượng một giá trị ban đầu khác nhau:

Hoạt động: Codelens 16.9.1 [Partyanimal_multipleinstances]

Hàm tạo có cả tham số

obj_1.do_sth[]
3 trỏ đến thể hiện đối tượng và các tham số bổ sung được chuyển vào hàm tạo khi đối tượng được xây dựng:

Trong hàm tạo, dòng thứ hai sao chép tham số [

obj_1.do_sth[]
4] được chuyển vào thuộc tính
obj_1.do_sth[]
5 trong thể hiện đối tượng.

Đầu ra của chương trình cho thấy rằng mỗi đối tượng [

obj_1.do_sth[]
6 và
obj_1.do_sth[]
7] chứa các bản sao độc lập của riêng chúng là
obj_1.do_sth[]
8 và
obj_1.do_sth[]
4:

obj_1.do_sth[]
1

Q-2: Khi sử dụng nhiều phiên bản, chúng ta có thể đặt các giá trị ban đầu khác nhau cho các phiên bản bằng cách sử dụng a.

Bạn đã thử các hoạt động trên trang này of activities on this page

Làm cách nào để tạo một lớp nhiều đối tượng trong Python?

Chúng ta có thể tạo danh sách đối tượng trong Python bằng cách nối thêm các phiên bản lớp vào danh sách. Bằng cách này, mọi chỉ mục trong danh sách đều có thể trỏ đến các thuộc tính và phương thức của lớp và có thể truy cập chúng.appending class instances to list. By this, every index in the list can point to instance attributes and methods of the class and can access them.

Chúng ta có thể tạo nhiều đối tượng cho lớp đơn trong Python không?

Một định nghĩa lớp duy nhất có thể được sử dụng để tạo nhiều đối tượng.Như đã đề cập trước đây, các đối tượng là độc lập.

Bạn có thể tạo nhiều đối tượng một lớp không?

Một chương trình có thể tạo ra nhiều đối tượng của cùng một lớp.Các đối tượng còn được gọi là các thể hiện và chúng có thể được lưu trữ trong một biến được đặt tên hoặc trong một mảng hoặc bộ sưu tập.Mã máy khách là mã sử dụng các biến này để gọi các phương thức và truy cập các thuộc tính công khai của đối tượng.. Objects are also called instances, and they can be stored in either a named variable or in an array or collection. Client code is the code that uses these variables to call the methods and access the public properties of the object.

Làm thế nào để bạn thêm hai đối tượng trong Python?

Phương thức __ADD __ [] trong Python chỉ định những gì xảy ra khi bạn gọi + trên hai đối tượng.Khi bạn gọi OBJ1 + OBJ2, về cơ bản bạn đang gọi OBJ1.__add __ [OBJ2].Điều này hoạt động, bởi vì INT thực hiện phương thức __ADD __ [] đằng sau hậu trường.. When you call obj1 + obj2, you are essentially calling obj1. __add__[obj2]. This works, because int implements the __add__[] method behind the scenes.

Bài Viết Liên Quan

Chủ Đề