1 Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Tôi gặp lỗi
Khi được hỏi ngày 26 tháng 5 năm 2020 lúc 23:06May 26, 2020 at 23:06
Python không thực hiện các biến riêng tư nhưng nó giúp giảm nguy cơ đụng độ tên với các biến bạn muốn giữ riêng tư cho một lớp. Nếu biến thể hiện của bạn bắt đầu với hai dấu gạch dưới, Python sẽ dành cho tên lớp. Xem "Tên Mangling" trong các biến riêng tư, biến 0 1 được đổi tên thành 2.Phương pháp này hoạt động, ngoại trừ khi nó không. Các lớp kế thừa không có cách tự nhiên để đi đến biến. Nói chung, đây không phải là một vấn đề vì nó là lớp riêng tư. Một cách để sử dụng nó là gọi các phương thức trong lớp cơ sở. Trong trường hợp này, bạn có thể nên gọi lớp cơ sở 3 để đặt biến. Nhưng nếu bạn muốn sử dụng nó trực tiếp, bạn có thể làm 4.
Đã trả lời ngày 26 tháng 5 năm 2020 lúc 23:19May 26, 2020 at 23:19
tdelaneytdelaneytdelaney 66,8K5 Huy hiệu vàng74 Huy hiệu bạc106 Huy hiệu đồng5 gold badges74 silver badges106 bronze badges 1 Vấn đề là bạn đang sử dụng một biến với tiền tố 5. Chính thức Python không có các biến riêng tư, nhưng khi bạn sử dụng VAR với tiền tố 5, nó được lưu trữ là 7,Nếu bạn nhìn trộm bên trong 8:
Vì vậy, khi bạn thực hiện 9, logic kế thừa mà bạn sẽ mong đợi những cú đá vào đó cha mẹ tìm kiếm cho 0 bằng cách xem ________ 31 (tìm thấy một trận đấu)Điều này sẽ cố gắng giải quyết 1 của cha mẹ, ngoại trừ trong trường hợp này, nó sẽ tìm cách giải quyết nó dưới dạng 2 của 4 là một ví dụ của 5.Đây được gọi là tên Mangling Đã trả lời ngày 26 tháng 5 năm 2020 lúc 23:31May 26, 2020 at 23:31
SvissvisSVIS 481 Huy hiệu bạc11 Huy hiệu đồng1 silver badge11 bronze badges 1
Tham khảo những điều cơ bản trong Python https://www.w3schools.com/python/python_inheritance.asp Đã trả lời ngày 27 tháng 5 năm 2020 lúc 2:04May 27, 2020 at 2:04
CodeEmpowerCodeEmpowerCodeEmpower 62511 Huy hiệu bạc29 Huy hiệu đồng11 silver badges29 bronze badges Lớp con của bạn nên là: Hãy nhớ rằng, 3 không phải là một phương pháp đặc biệt để loại bỏ cái tên kỳ lạ của nó. Nó chỉ là phương thức được gọi tự động sau khi đối tượng được tạo. Mặt khác, đó là một phương pháp thông thường và các quy tắc kế thừa thông thường được áp dụng.super().__init__(arguments, that, goes, to, parents) Bạn đang ghi đè hàm tạo ( 3) của lớp cha. Để mở rộng nó, bạn cần gọi rõ ràng hàm tạo của cha mẹ bằng một cuộc gọi 8.class TypeTwoEvent(Event): def __init__(self, level = None, ** kwargs): # the super call to set the attributes in the parent class super().__init__( ** kwargs) # now, extend other attributes self.sr1 = level self.state = STATE_EVENT_TWO Gợi ý: 2 Kế thừa là một khái niệm lập trình hướng đối tượng trong đó một lớp (thường được gọi là lớp con) có được các thuộc tính và hành vi từ một lớp khác (thường được gọi là lớp cha). được gọi là thừa kế đơn. Tất cả các đoạn mã trước sử dụng kế thừa duy nhất., Điều này giúp loại bỏ sự cần thiết phải thực hiện các phương thức được kế thừa bởi một lớp con hoặc lớp con, một lần nữa. Nói cách khác, nó cho phép một lớp con thừa hưởng/tái sử dụng các thuộc tính và phương thức của lớp cha. Về mặt đối tượng trong thế giới thực, nó thể hiện mối quan hệ IS-A., Khi các biến thể hiện của lớp cha không cần phải được thừa hưởng bởi lớp con, chúng có thể không có sẵn cho lớp con bằng cách thêm dấu gạch dưới đôi ( __) Trước tên biến. Điều này bổ sung _ classname trước tên biến. Vì vậy, khi chúng tôi cố gắng truy cập nó giống như các biến thể hiện khác của lớp, nó sẽ đưa ra một lỗi thuộc tính của Google. Điều này giúp loại bỏ sự cần thiết phải thực hiện các phương pháp được kế thừa bởi một lớp con hoặc lớp con một lần nữa. Nói cách khác, nó cho phép một lớp con thừa hưởng/tái sử dụng các thuộc tính và phương thức của lớp cha. Về mặt đối tượng trong thế giới thực, nó đại diện cho một mối quan hệ IS-A. # Base / super / parent classclass ProgramLanguage: def __init__(self, name): self.name = name # Derived / sub / child classclass Python(ProgramLanguage): pass # Create an object of the derived classy = Python("Inheritance") print(y.name) # Output: Inheritance 2._ ________số 8 Trong ví dụ dưới đây, lớp dẫn xuất, 9, thực hiện phương thức phụ huynh 0 bên trong định nghĩa 1: 0# Base / super / parent classclass ProgramLanguage: def __init__(self, name): self.name = name # Derived / sub / child classclass Python(ProgramLanguage): pass # Create an object of the derived classy = Python("Inheritance") print(y.name) # Output: Inheritance 0 3 4 5Gợi ý: 3 Lớp cơ sở cho tất cả các trường hợp ngoại lệ tích hợp. Nó không có nghĩa là được kế thừa trực tiếp bởi các lớp do người dùng xác định (đối với đó, sử dụng ngoại lệ). Nếu str () được gọi trên một thể hiện của lớp này, thì biểu diễn của (các) đối số cho trường hợp được trả về hoặc chuỗi trống khi không có đối số. ngoại lệ; Các lập trình viên được khuyến khích rút ra các ngoại lệ mới từ lớp ngoại lệ hoặc một trong các lớp con của nó chứ không phải từ Baseexception. Thông tin thêm về việc xác định các ngoại lệ có sẵn trong hướng dẫn Python theo các trường hợp ngoại lệ do người dùng xác định., Tất cả các trường hợp ngoại lệ được tích hợp, không phải là hệ thống được lấy từ lớp này. Tất cả các trường hợp ngoại lệ do người dùng xác định cũng nên được lấy từ lớp này., Ngoại lệ này có nguồn gốc từ RunTimeError. Trong các lớp cơ sở do người dùng xác định, các phương thức trừu tượng sẽ nâng cao ngoại lệ này khi chúng yêu cầu các lớp dẫn xuất để ghi đè phương thức hoặc trong khi lớp đang được phát triển để chỉ ra rằng việc triển khai thực sự vẫn cần được thêm vào. 6 7 8Gợi ý: 4 Cập nhật lần cuối: 07 tháng 7, 2022 Cú pháp kế thừa Python 9 |