Thuộc tính đối tượng Python không có __init__

Trong video này, bạn sẽ tìm hiểu vị trí các lớp và đối tượng được sử dụng trong phần mềm thực, cũng như cách chúng được định nghĩa trong Python

Chúng ta có thể định nghĩa một lớp Dog trống như thế này

class Dog:
    pass

Các lớp chứa các đặc điểm được gọi là Thuộc tính. Chúng tôi phân biệt giữa thuộc tính thể hiện và thuộc tính lớp

Thuộc tính thể hiện là duy nhất cho mỗi đối tượng, (một thể hiện là tên khác của một đối tượng). Ở đây, bất kỳ đối tượng Dog nào chúng ta tạo sẽ có thể lưu trữ tên và tuổi của nó. Chúng tôi có thể thay đổi một trong hai thuộc tính của một trong hai con chó mà không ảnh hưởng đến bất kỳ đối tượng chó nào khác mà chúng tôi đã tạo

class Dog:

    def __init__(self, name, age):
        self.name = name
        self.age = age

__init__ này được gọi là trình khởi tạo. Nó tự động được gọi khi chúng ta khởi tạo lớp. Công việc của nó là đảm bảo lớp có bất kỳ thuộc tính nào nó cần. Đôi khi, nó cũng được sử dụng để đảm bảo rằng đối tượng ở trạng thái hợp lệ khi nó được khởi tạo, chẳng hạn như đảm bảo người dùng không nhập tuổi phủ định cho con chó

Chúng ta phải bao gồm tham số self để trình khởi tạo của chúng ta có tham chiếu đến đối tượng mới đang được khởi tạo

Thuộc tính lớp là duy nhất cho mỗi lớp. Mỗi thể hiện của lớp sẽ có thuộc tính này. Nó đôi khi được sử dụng để chỉ định một giá trị mặc định mà tất cả các đối tượng nên có sau khi chúng được khởi tạo. Ở đây, thuộc tính lớp của chúng ta là loài

class Dog:

    species = 'mammal'

    def __init__(self, name, age):
        self.name = name
        self.age = age

Peter T trên

Trong văn bản bên dưới video, bạn không cần phải thay đổi. “Hành vi thực sự được gọi là Thuộc tính. ” thành “Thuộc tính thực sự được gọi là Thuộc tính và Hành vi thực sự được gọi là Phương thức. ”?

Thuộc tính đối tượng Python không có __init__

Dan Bader Nhóm RP trên

@Peter. Nắm bắt tốt, điều này nên được khắc phục trong văn bản mô tả ngay bây giờ. Thanks. )

mnemonic6502 trên

Tại thời điểm này, sẽ tốt hơn nếu người học không được kỳ vọng sẽ chuyển ngữ cảnh suy nghĩ từ lớp cửa giả định sang lớp chó và ban đầu chỉ tập trung vào một lớp ví dụ và xây dựng trên đó

TheManWhoSoldTheWorld trên

video hay. Tôi muốn biết cách quyết định khi nào sử dụng lớp vars và khi nào thì không

Thanks

kiran trên

sự khác biệt giữa đối tượng và thể hiện là gì. cho tôi một ví dụ bất kỳ. VÍ DỤ. hạng A. vượt qua obj = A()

trong ví dụ trên A là tên lớp. obj là đối tượng. còn ví dụ thì sao?

Thuộc tính đối tượng Python không có __init__

Austin Cepalia Nhóm RP trên

@manupanduworld “ví dụ” là một từ khác của “đối tượng”. Để tạo một thể hiện của một lớp là tạo một đối tượng từ nó

Ravi Dayabhai trên

'Động vật có vú' là một lớp chứ không phải là một loài...những bài học này phù hợp như thế nào. 🤓

Leonardo Di Domenico trên

Và những gì về đóng gói? . )

Thuộc tính đối tượng Python không có __init__

Bartosz Zaczyński Nhóm RP trên

@Leonardo Di Domenico Trong Python, không có khái niệm về biến “riêng tư” hoặc thậm chí là hằng số có giá trị cuối cùng. Có nhiều cách để làm cho việc thay đổi trạng thái của một đối tượng trở nên khó khăn hơn, chẳng hạn như sử dụng các bộ mô tả thuộc tính, nhưng cuối cùng, Python sẽ tin tưởng bạn là một công dân có trách nhiệm

Phương thức __ init __ có bắt buộc trong Python không?

Là một ngôn ngữ lập trình hiện đại, Python cung cấp mọi phương tiện để triển khai triết lý hướng đối tượng. Phương thức __init__ là cốt lõi của OOP và cần thiết để tạo đối tượng .

Bạn có thể có một lớp không có init Python không?

Lớp không có Constructor . Trong trường hợp này, hàm tạo của lớp cha được gọi để khởi tạo thể hiện của lớp. Lớp đối tượng là cơ sở của tất cả các lớp trong Python. We can create a class without any constructor definition. In this case, the superclass constructor is called to initialize the instance of the class. The object class is the base of all the classes in Python.

Có thể sử dụng thuộc tính lớp mà không có phiên bản của lớp đó trong Python không?

Chúng ta cũng có thể tạo các phương thức lớp có thể được gọi mà không cần có phiên bản . Khi đó, phương thức này tương tự như một hàm Python đơn giản, ngoại trừ việc nó được chứa bên trong một lớp và tên phương thức phải được đặt trước bởi tên lớp.

Bạn có thể định nghĩa một lớp mà không cần init không?

Bạn không bao giờ cần __init__() để khởi tạo biến lớp . Nếu bạn không chỉ định __init__(), bạn sẽ nhận được một giá trị mặc định chỉ gọi __init__() của siêu lớp của bạn.