Hướng dẫn can we modify object in python? - chúng ta có thể sửa đổi đối tượng trong python không?

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.

Tôi chưa quen với Python (đến từ C ++) và hiểu rằng nói một cách đại khái, tất cả các biến (tên) là các tham chiếu đến các đối tượng Python. Một số đối tượng này là có thể thay đổi (danh sách), trong khi những đối tượng khác không (bộ dữ liệu, mặc dù bạn có thể thay đổi các yếu tố của nó nếu chính chúng có thể thay đổi).

Đối với các đối tượng có thể thay đổi, tôi có thể sửa đổi chúng bằng cách truy cập các hàm sửa đổi của chúng (chẳng hạn như .append()) thông qua (các) tên mà chúng bị ràng buộc. Ví dụ:

myList = [1,2,3,4]
myList.append(5)

Tuy nhiên, tôi biết rằng chỉ cần gán myList cho danh sách thứ hai chỉ cần khởi tạo danh sách thứ hai này và gán lại myList cho nó; Danh sách ban đầu [1,2,3,4] vẫn tồn tại, cho đến khi bộ sưu tập rác làm sạch nó (hoặc không nếu một tên khác được gán cho nó).

CÂU HỎI CỦA TÔI:

Giả sử tôi có một lớp Point:

class Point:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

p1 = Point(1,1)
p1.x = 2
p1.y = 2

Làm thế nào tôi có thể thay thế

class Point:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

p1 = Point(1,1)
p1.x = 2
p1.y = 2
0 và
class Point:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

p1 = Point(1,1)
p1.x = 2
p1.y = 2
1 bằng một lệnh duy nhất chỉ gán đối tượng
class Point:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

p1 = Point(1,1)
p1.x = 2
p1.y = 2
2 của tôi cho đối tượng
class Point:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

p1 = Point(1,1)
p1.x = 2
p1.y = 2
3? Rõ ràng,
class Point:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

p1 = Point(1,1)
p1.x = 2
p1.y = 2
4 không hoạt động vì điều này chỉ phân công lại tên P1 thành một đối tượng
class Point:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

p1 = Point(1,1)
p1.x = 2
p1.y = 2
3 mới và khác biệt (không phải là điều tôi cần!).

Có cách nào tích hợp để thực hiện việc này hay tôi cần xác định chức năng sửa đổi bổ sung trong Point:

def changePoint(self, newPoint):
    self.x = newPoint.x
    self.y = newPoint.y

Để làm điều này trong một lệnh duy nhất (nghĩa là thông qua

class Point:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

p1 = Point(1,1)
p1.x = 2
p1.y = 2
7)? Trong C ++, bạn thường chỉ có thể sử dụng toán tử gán quá tải được xác định ngầm của lớp (
class Point:
    def __init__(self, x=0, y=0):
        self.x = x
        self.y = y

p1 = Point(1,1)
p1.x = 2
p1.y = 2
8) và thực hiện điều này trong một lệnh duy nhất:

SimpleNameClass* objectPtr = new SimpleNameClass("Bob");
//Dereferencing objectPtr and assigning new object:
*objectPtr = SimpleNameClass("Jim");

//Now objectPtr still points to (references) the same address in memory,
//but the underlying object is completely different.

Nhìn chung, có vẻ tẻ nhạt khi phải thay đổi mọi thuộc tính riêng lẻ khi tôi muốn chuyển đổi đối tượng của mình thành một đối tượng mới, đặc biệt là nếu đối tượng của tôi chứa nhiều thuộc tính!

EDIT:

Thêm vào câu trả lời của Jainil, hóa ra tôi thậm chí không cần phải thay đổi định nghĩa của init, tôi chỉ có thể sử dụng phiên bản trên. Sau đó, bạn có thể chuyển đổi một đối tượng điểm sang một đối tượng khác với một lệnh duy nhất, như vậy:

p1.__init__(2,2) #Replaces p1.x = 2, p1.y = 2

Nó hoạt động vì ban đầu ban đầu mất tới 2 args. Vì vậy, một phương thức init vanilla, về cơ bản đã cho phép thay đổi đối tượng cơ bản, ngoài việc khởi tạo nó (ít nhất là trong trường hợp này). Yipee.

Python là một ngôn ngữ lập trình siêu phổ biến đặc biệt phù hợp để phát triển các ứng dụng GUI và Web. Nó cũng là một lựa chọn cực kỳ phổ biến để phát triển ứng dụng vì nó cung cấp các tùy chọn gõ và ràng buộc động. Trong bài viết này, chúng tôi sẽ tìm hiểu về các đối tượng và lớp học trong Python.

Lớp học là gì?

Lớp có thể được định nghĩa là một tập hợp các đối tượng xác định các thuộc tính và hành vi phổ biến của tất cả các đối tượng. Tóm lại, nó có thể được gọi là bản thiết kế của các đối tượng tương tự.

Để hiểu rõ hơn, hãy để đi qua một ví dụ. Trong trường hợp này, chúng tôi đang coi một người như một lớp học. Bây giờ, nếu một người là một lớp học, mỗi người có một số tính năng nhất định, chẳng hạn như tên, giới tính và tuổi tác. Mỗi người có những hành vi nhất định, họ có thể nói chuyện, đi bộ, chạy hoặc bỏ phiếu.

Lớp học được xác định theo từ khóa của lớp.

Example:

Hình: Xác định một đối tượng lớp và các lớp trong Python

Đối tượng là gì?

Giống như mọi thứ trong thế giới thực là một đối tượng, trường hợp của mô hình lập trình OOPS cũng vậy.

Đối tượng là một thực thể có trạng thái và hành vi. Đó là một thể hiện của một lớp có thể truy cập dữ liệu.

Example:

Hướng dẫn can we modify object in python? - chúng ta có thể sửa đổi đối tượng trong python không?

Hình: Xác định một đối tượng

_Init_method

Phương thức _init_ được chạy ngay khi một đối tượng của lớp được tạo. Phương pháp này rất hữu ích để chuyển giá trị ban đầu cho các đối tượng của bạn. & NBSP;

Hình: _init_ Phương thức

Bản thân của bản thân đại diện cho trường hợp của lớp. Nó liên kết các thuộc tính với các đối số đã cho. & NBSP;

Tạo các lớp và đối tượng trong Python

Hình: Tạo lớp và đối tượng

Ở đây, EMP1 và EMP2 là đối tượng của nhân viên lớp.

Sửa đổi thuộc tính đối tượng

Bạn có thể sửa đổi các thuộc tính đối tượng theo cách sau:

Hình: Sửa đổi các thuộc tính đối tượng và các lớp trong Python

Trong ví dụ trên, chúng tôi đã đề cập đến thuộc tính mà chúng tôi muốn thay đổi bằng cách chỉ định đối tượng và các thuộc tính của nó.

Xóa thuộc tính đối tượng

Bạn có thể xóa thuộc tính đối tượng bằng cách sử dụng từ khóa ‘del.

Hình: Xóa thuộc tính đối tượng

Như bạn có thể thấy, thuộc tính đã bị xóa và bạn nhận được thông báo lỗi khi bạn cố gắng in thuộc tính ’tuổi.

Mong muốn chuyển sang lập trình? Hãy tham gia khóa đào tạo & nbsp; Python & nbsp; và bắt đầu sự nghiệp của bạn như một lập trình viên Python chuyên nghiệp.

Sự kết luận

Trong bài viết này, chúng tôi đã xem xét các đối tượng và lớp học trong Python thông qua một số ví dụ trực quan. & NBSP;

Nếu bạn có bất kỳ câu hỏi nào, xin vui lòng đề cập đến chúng trong phần bình luận và chúng tôi sẽ yêu cầu các chuyên gia của chúng tôi trả lời chúng cho bạn càng sớm càng tốt!

Bạn muốn trở thành một nhà phát triển Python?

Vì nó được sử dụng rộng rãi trên toàn cầu, các nhà tuyển dụng trong hầu hết các ngành công nghiệp đều yêu cầu các nhà phát triển Python lành nghề. Khám phá khóa học đào tạo Python của chúng tôi để cung cấp cho sự nghiệp của bạn một sự thúc đẩy rất cần thiết!

Phương pháp có thể sửa đổi đối tượng Python không?

Một đối tượng bất biến không thể được sửa đổi, nhưng tất nhiên nó có thể được thay thế.Công ước Python thông thường là các chức năng & phương thức hoạt động trên một đối tượng có thể thay đổi thực hiện thao tác tại chỗ và không trả về, chúng không trả về bản gốc đã sửa đổi.. The usual Python convention is that functions & methods that operate on a mutable object perform the operation in-place and return None , they don't return the modified original.

Bạn có thể sửa đổi các thuộc tính trên một đối tượng?

Đặt thuộc tính của các đối tượng hiện có Sau khi bạn đã tạo một đối tượng, bạn có thể đặt hoặc thay đổi thuộc tính của nó bằng cách gọi trực tiếp thuộc tính với toán tử DOT (nếu đối tượng kế thừa từ IDL_OBject) hoặc bằng cách gọi phương thức SetProperty của đối tượng.you can set or change its properties by calling the property directly with the dot operator (if the object inherits from IDL_Object) or by calling the object's SetProperty method.

Bạn có thể tạo các đối tượng trong Python?

Python là một ngôn ngữ lập trình định hướng đối tượng.Hầu hết mọi thứ trong Python là một đối tượng, với các thuộc tính và phương pháp của nó.Một lớp giống như một hàm tạo đối tượng hoặc "bản thiết kế" để tạo các đối tượng.A Class is like an object constructor, or a "blueprint" for creating objects.