Review Tại sao Python cần init?
Kinh Nghiệm Hướng dẫn Tại sao Python cần init? Mới Nhất
Bùi Khánh Ngọc đang tìm kiếm từ khóa Tại sao Python cần init? được Update vào lúc : 2022-12-20 17:20:08 . Với phương châm chia sẻ Bí kíp về trong nội dung bài viết một cách Chi Tiết 2022. Nếu sau khi đọc tài liệu vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Ad lý giải và hướng dẫn lại nha.Tệp init python là gì? . tập tin py. Chúng ta thảo luận về mục tiêu sử dụng của tệp init Python, những gì cần phải đặt trong tệp init Python và liệu tất cả những gói Python có cần tệp init Python hay là không
Nội dung chính Show- Có cái gì bên trong__. py dùng để làm gì?Có thể __init__. py có trống không?Có phải tất cả những gói Python đều cần __init__. py?Bạn hoàn toàn có thể làm gì với __init__. py?Phương thức khởi tạoPython gọi >>> p = Point(1, 2)
Traceback (most recent call last):
File "", line 1, in
TypeError: Point() takes no arguments
>>>
4 bất kể lúc nào một lớp được gọiTóm lượcPython vẫn cần __ init __?Mục đích của tệp __ init __ py là gì?Mục đích của tệp __ init __ py tại thời điểm tạo những gói Python là gì?__ init __ có chạy tự động không?
Có cái gì bên trong__. py dùng để làm gì?
Về cốt lõi, __init__. tệp py là tệp được sử dụng để đánh dấu một thư mục dưới dạng gói Python. Mỗi thư mục chứa mã mà bạn muốn hoàn toàn có thể nhập dưới dạng gói Python đơn giản cần chứa __init__. py. Điều này gồm có những thư mục con của những thư mục đã có __init__. tập tin py trong đó.
Mã trong __init__. tệp py là mã đầu tiên được chạy khi gói Python được nhập. Điều này nghĩa là có một số trong những thủ thuật đặc biệt mà bạn hoàn toàn có thể thực hiện bằng phương pháp sử dụng và __init__. tập tin py. Chúng ta sẽ thảo luận về những điều này sau trong nội dung bài viết này.
Có thể __init__. py có trống không?
Một thắc mắc mà chúng tôi thường được hỏi là liệu một __init__. tệp py hoàn toàn có thể trống. Câu trả lời cho thắc mắc là có, một __init__. tệp py hoàn toàn có thể trống. Trên thực tế, nếu bạn không còn trường hợp sử dụng rõ ràng yêu cầu bạn đưa mã vào __init__ của tớ. py, thì __init__ của bạn. tệp py phải trống. Bạn tránh việc thêm mã vào __init__ của tớ. py chỉ vì bạn đã thấy ai đó làm như vậy trên internet. Bạn nên xem một __init__ trống. py làm mặc định.
Có phải tất cả những gói Python đều cần __init__. py?
Có phải tất cả những gói Python đều cần __init__. tập tin py? . py để được xem là gói, nhưng có một loại gói đặc biệt được gọi là gói không khí tên không yêu cầu __init__. tập tin py sẽ xuất hiện
Các gói không khí tên rất phù phù phù hợp với những trường hợp bạn có nhiều gói con mà bạn muốn hoàn toàn có thể nhập dưới cùng một tên gói cấp cao nhất, nhưng bạn muốn duy trì những gói con riêng biệt trong những thư mục rất khác nhau. Ví dụ: giả sử bạn có hai gói con được gọi là “phép cộng” và “phép trừ” mà bạn muốn hoàn toàn có thể nhập trong gói cấp cao nhất “simple_math”. Nếu bạn sử dụng những gói không khí tên, thì bạn hoàn toàn có thể duy trì riêng những gói "cộng" và "trừ" của tớ nhưng nhập cả hai gói đó trong "simple_math" như vậy
import simple_math.addition import simple_math.subtractionBạn hoàn toàn có thể đọc thêm về gói không khí tên tại đây , nhưng trừ khi bạn có nguyên do để sử dụng gói không khí tên thì bạn nên làm nhận định rằng mình . py trong mọi thư mục.
Bạn hoàn toàn có thể làm gì với __init__. py?
Như chúng tôi đã nói trước đây, mã trong __init__ của bạn. py là tệp đầu tiên chạy khi bạn nhập gói Python của tớ. Điều này nghĩa là bạn hoàn toàn có thể sử dụng nó để đánh lừa Python hành xử theo cách mà nó hoàn toàn có thể không hành xử theo cách khác. Dưới đây là một số trong những ví dụ phổ biến về cách sử dụng __init__. tập tin py
Python đáp ứng một khối mạng lưới hệ thống đóng gói rất đơn giản, nó chỉ đơn giản là một phần mở rộng của cơ chế mô-đun cho một thư mục. Bất kỳ thư mục nào có __init__. tệp py được xem là gói Python. Các mô-đun rất khác nhau trong gói được nhập theo cách tương tự như những mô-đun đơn giản, tuy nhiên với một hành vi đặc biệt cho __init__. py, được sử dụng để thu thập tất cả những định nghĩa trên toàn gói
Hình ảnh sau đây đã cho tất cả chúng ta biết cấu trúc của một mô-đun Python tiêu chuẩn
Như bạn hoàn toàn có thể thấy cấu trúc của một mô-đun Python tiêu chuẩn từ hình trên, gồm có __init__. py trong một thư mục cho trình thông dịch Python biết rằng thư mục đó phải được coi như một gói Python. Khi một mô-đun được nhập vào tập lệnh, __init__ của mô-đun đó. tệp py sẽ được lấy nguồn và thực thi. Nó đáp ứng một cách thuận tiện và đơn giản để bạn nhóm những thư mục lớn gồm nhiều tập lệnh python riêng biệt thành một mô-đun hoàn toàn có thể nhập được
Nếu bạn có những tập tin
và mysock nằm trên đường dẫn Python của bạn, bạn hoàn toàn có thể nhập mã trong trò chuyện. py như
hoặc
Nếu bạn xóa __init__. py, Python sẽ không tìm kiếm những mô-đun con bên trong thư mục đó nữa, do đó, nỗ lực nhập mô-đun sẽ không thành công. Để lại __init__. py trống được xem là thông thường và thậm chí là một thông lệ tốt, nếu những mô-đun và gói con của gói không cần chia sẻ bất kỳ mã nào
Chúng tôi có một đối tượng
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 1 tại thời điểm này, nhưng đối tượng >>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 1 này thực sự không còn ý nghĩa gì vì nó không còn hiệu suất cao (nó không tàng trữ bất kỳ tài liệu hữu ích nào hoặc có bất kỳ phương thức nào)Chúng tôi hoàn toàn có thể thêm những thuộc tính vào những đối tượng
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 1 theo cách thủ công để tàng trữ một số trong những tài liệu về chúngNhưng làm như vậy sẽ là một chút ít ngớ ngẩn
Sẽ tốt hơn nếu bằng phương pháp nào đó tất cả chúng ta hoàn toàn có thể gọi lớp này với những đối số để tự động tàng trữ những thuộc tính
Phương thức khởi tạo
Hiện tại, nếu tất cả chúng ta nỗ lực gọi lớp này bằng những đối số, tất cả chúng ta sẽ gặp lỗi
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>>Để đồng ý những đối số, tất cả chúng ta cần định nghĩa một phương thức
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4 trong lớp của tất cả chúng ta def __init__(self, x, y): self.x = x self.y = yĐối số đầu tiên trong phương thức
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4 của tất cả chúng ta sẽ luôn là >>> p = Point() >>> p 3 (in như hầu hết những phương thức khác). Sau đó, tất cả chúng ta cần khai báo bất kỳ đối số nào mà tất cả chúng ta muốn lớp của tớ đồng ýĐiều chính mà bạn sẽ luôn thấy trong một phương pháp
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4, là gán cho những thuộc tínhĐây là lớp
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 1 mới của chúng tôiclass Point: """2-dimensional point.""" def __init__(self, x, y): self.x = x self.y = yNếu tất cả chúng ta gọi nó như trước đây mà không còn bất kỳ đối số nào, tất cả chúng ta sẽ thấy lỗi vì lớp này hiện yêu cầu hai đối số,
>>> p = Point() >>> p 6 và >>> p = Point() >>> p 7>>> p = Point() Traceback (most recent call last): File "", line 1, in TypeError: __init__() missing 2 required positional arguments: 'x' and 'y'Chúng ta cần đáp ứng cho lớp
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 1 của tớ hai đối số để đã có được một thể hiện mới của lớp nàyĐối tượng
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 1 này hiện có thuộc tính >>> p = Point() >>> p 6 và thuộc tính >>> p = Point() >>> p 7Điều đó nghĩa là phương pháp
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4 của chúng tôi được gọi làPython gọi >>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4 bất kể lúc nào một lớp được gọi
Bất cứ lúc nào bạn gọi một lớp, Python sẽ xây dựng một thể hiện mới của lớp đó, sau đó gọi phương thức
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4 của lớp đó, chuyển thể hiện mới được tạo làm đối số đầu tiên (>>> p = Point() >>> p 3)Không in như nhiều ngôn từ lập trình,
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4 không được gọi là "phương thức xây dựng"Phương thức
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4 của Python được gọi là phương thức khởi tạo. Phương thức khởi tạo khởi tạo thể hiện lớp mới của tất cả chúng ta. Vì vậy, tại thời điểm mà phương thức khởi tạo được gọi là thể hiện của lớp đã được xây dựngTóm lược
Khi bạn tạo một lớp mới trong Python, phương thức đầu tiên bạn hoàn toàn có thể sẽ tạo là phương thức
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4. Phương thức >>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4 được cho phép bạn đồng ý những đối số cho lớp của tớQuan trọng hơn, phương thức
>>> p = Point(1, 2) Traceback (most recent call last): File "", line 1, in TypeError: Point() takes no arguments >>> 4 được cho phép bạn gán những giá trị ban đầu cho những thuộc tính rất khác nhau trên những thành viên lớp của bạn
Post a Comment