Super() __ init__ làm gì trong python?

Bài viết này cố gắng giải thích cách sử dụng

class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
7 trong thừa kế một cách đơn giản và nhanh nhất có thể

Một lớp hình chữ nhật đơn giản

Hình chữ nhật là hình có 4 cạnh trong đó tất cả các góc đều là góc vuông và có thể dựng được chỉ bằng chiều dài và chiều rộng

class Rectangle():
def __init__(self, length, width):
self.length = length
self.width = width
def perimeter(self):
return 2 * (self.length + self.width)
def area(self):
return self.length * self.width

Hình vuông là hình chữ nhật có chiều dài bằng chiều rộng và chỉ dựng được bằng 1 chiều dài. Vì hình vuông là một hình chữ nhật cụ thể hơn, chúng ta có thể thiết kế lớp

class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
8 để kế thừa từ lớp
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
9

Một lớp con Sử dụng super(). __init_______1

Ở đây, hàm

class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
0 (hãy nhớ sử dụng dấu ngoặc
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
0) trả về một đối tượng tạm thời của lớp cha của
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
8 là
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
9. Điều này cho phép chúng ta gọi các phương thức từ bên trong lớp cha
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
9

Như vậy,

class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
7 ở đây thực sự đề cập đến phương thức
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
5 từ bên trong lớp
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
9. Vì nó nhận 2 đối số
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
7 và
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
8, nên chúng ta phải chuyển 2 đối số đó vào
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
9. Vì chiều dài và chiều rộng bằng nhau trong một hình vuông, chúng ta có thể chỉ cần chuyển vào
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
7 hai lần

Một vài ví dụ khác

Động vật & Chó

Ở đây, chó là một con vật, vì vậy lớp

class Animal():
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
1 kế thừa từ lớp
class Animal():
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
2

________số 8

Vì phương thức

class Animal():
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
3 nhận thêm 1 đối số so với phương thức
class Animal():
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
4, nên trước tiên chúng tôi gọi phương thức
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
9, sau đó đặt
class Animal():
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
6 là
class Animal():
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
7

Xe & Xe

class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
6

Trong ví dụ này,

class Animal():
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
8 lấy
class Animal():
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
9,
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
60 và
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
61, trong khi
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
62 lấy
class Animal():
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
9,
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
60 và
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
65. Thuộc tính
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
61 của
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
66 được tự động đặt thành 4 trong trường hợp này. Như vậy, trong phương thức
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
9,
class Animal():
def __init__(self, name, age):
self.name = name
self.age = age
class Dog(Animal):
def __init__(self, name, age, breed):
super().__init__(name, age)
self.breed = breed
9,
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
60 và
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
01 được truyền vào bên trong. Thuộc tính
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
65 sau đó được thiết lập sau đó

Hình bình hành và hình chữ nhật

Hình bình hành là hình có 4 cạnh có 2 cặp đường thẳng song song nhưng góc giữa chúng không cần bằng 90 độ. Một hình chữ nhật chỉ đơn giản là một hình bình hành có góc là 90 độ

class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
0

Ở đây,

class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
03 nhận ít đối số hơn 1 so với ________ 304(góc, là góc của hình chữ nhật, luôn là 90 độ), vì vậy chúng ta chỉ cần gọi phương thức
class Square(Rectangle):
def __init__(self, length):
super().__init__(length, length)
9 và chuyển vào ________ 306 làm góc

Phần kết luận

Tôi viết các bài viết về mã hóa (1–2 ngày một lần) mà tôi muốn bản thân khi còn trẻ đọc để tăng tốc quá trình học tập. Hãy tham gia danh sách email của tôi để nhận được thông báo bất cứ khi nào tôi xuất bản

Nhận email bất cứ khi nào Zlliu xuất bản

Nhận email bất cứ khi nào Zlliu xuất bản. Bằng cách đăng ký, bạn sẽ tạo một tài khoản Medium nếu bạn chưa có…

zl-liu. trung bình. com

Nếu bài viết này cung cấp giá trị và bạn muốn hỗ trợ tôi, hãy cân nhắc đăng ký làm thành viên Phương tiện - Đó là 5 đô la một tháng và bạn có quyền truy cập không giới hạn vào các bài viết trên Phương tiện. Nếu bạn đăng ký bằng liên kết của tôi bên dưới, tôi sẽ kiếm được một khoản hoa hồng nhỏ mà không phải trả thêm phí cho bạn

Đăng ký bằng liên kết của tôi tại đây để đọc các bài viết trên Phương tiện không giới hạn

Nếu bài viết này mang lại giá trị to lớn cho bạn, hãy cân nhắc mua cho tôi một ly cà phê — mọi đóng góp nhỏ đều được đánh giá cao

zlliu đang viết nội dung lập trình để làm cho cuộc sống tập thể của chúng ta dễ dàng hơn

Chào thế giới. 👋 Mình vừa tạo một trang ở đây. Bây giờ bạn có thể mua cho tôi một ly cà phê

muameacoffee. com

Thêm nội dung bằng tiếng Anh. io. Đăng ký nhận bản tin hàng tuần miễn phí của chúng tôi. Nhận quyền truy cập độc quyền để viết các cơ hội và lời khuyên trong cộng đồng của chúng tôi Discord

Siêu () __ init __ trong Python 3 là gì?

“__init__” là một phương thức dành riêng trong các lớp python. Nó được biết đến như một hàm tạo trong thuật ngữ Hướng đối tượng. Phương thức này khi được gọi sẽ cho phép lớp khởi tạo các thuộc tính của lớp . Hàm super() cho phép chúng ta tránh sử dụng tên lớp cơ sở một cách rõ ràng.

Tác dụng của việc gọi super() __ Init__ là gì?

__init__() của lớp cha ( Square ) sẽ được gọi tự động. super() trả về một đối tượng ủy nhiệm cho lớp cha , vì vậy bạn có thể gọi phương thức bạn muốn trực tiếp trên đó. siêu(). diện tích(). Điều này không chỉ giúp chúng ta không phải viết lại các phép tính diện tích mà còn cho phép chúng ta thay đổi nội tại.

Super() hoạt động như thế nào trong Python?

Hàm super() trong Python giúp kế thừa lớp dễ quản lý và mở rộng hơn. Hàm trả về một đối tượng tạm thời cho phép tham chiếu đến lớp cha bằng từ khóa super . Hàm super() có hai trường hợp sử dụng chính. Để tránh việc sử dụng lớp super (parent) một cách rõ ràng.

Siêu init có cần thiết không?

Nói chung là cần thiết . Và nó thường là lệnh gọi đầu tiên trong init của bạn. Đầu tiên nó gọi hàm init của lớp cha ( dict ). Nó thường tạo cấu trúc dữ liệu cơ bản của nó.