Trong Python, một tệp được gọi là mô -đun. Một mô -đun có thể bao gồm nhiều lớp hoặc chức năng.module. A module can consist of multiple classes or functions. Show
Vì Python không chỉ là ngôn ngữ OO, nó không có ý nghĩa có quy tắc nói rằng, một tệp chỉ nên chứa một lớp.not an OO language only, it does not make sense do have a rule that says, one file should only contain one class. Một tệp (mô -đun) phải chứa các lớp / hàm thuộc về nhau, tức là cung cấp chức năng tương tự hoặc phụ thuộc vào nhau. Tất nhiên bạn không nên phóng đại điều này. Khả năng đọc thực sự bị ảnh hưởng nếu mô -đun của bạn bao gồm quá nhiều lớp hoặc chức năng. Sau đó, có lẽ đã đến lúc tập hợp lại chức năng thành các mô -đun khác nhau và tạo các gói. Đối với các quy ước đặt tên, bạn có thể muốn đọc PEP 8 nhưng tóm lại:
và
Để khởi tạo một đối tượng, bạn phải nhập lớp trong tệp của mình. Ví dụ
hoặc
hoặc
Bạn đang hỏi những thứ cơ bản cần thiết, vì vậy tôi khuyên bạn nên đọc hướng dẫn. Trong bài viết này, chúng tôi sẽ hiểu sự cần thiết của lập trình mô -đun và sau đó sẽ tìm hiểu cách nhập các lớp từ một tệp khác trong ngôn ngữ lập trình Python. Chúng tôi sẽ thảo luận về một số ví dụ để hiểu chúng rõ ràng hơn. Chúng tôi cũng sẽ hiểu làm thế nào các thư viện được xác định trước giúp chúng tôi. Vậy hãy bắt đầu.modular programming and then will learn how to Import Classes from another file in the python programming language. We will discuss some examples to understand them more clearly. We will also understand how predefined libraries help us. So let’s get started.
Tại sao nó cần thiết?Lập trình hướng đối tượng hoặc rất tiếcwhy we need to import any file or classes from another file? Or, Is it really important? Or, How it will affect our programming approach? Answers to all these questions are within this article. Lập trình mô -đunObject-Oriented Programming aka OOPs. Lập trình hướng đối tượng hoặc rất tiếcLập trình mô -đunattributes) and functions (called methods). The advantage of doing that is we can reuse it a number of times we want. We can also implement other real-time entities like inheritance ( i.e. inheriting properties from other classes), abstraction ( i.e. information hiding), polymorphism (i.e. present in many forms) e.t.c. in it. It is an independent concept in itself, so we will talk about it somewhat later. For now, move ahead and talk about modular programming. Lập trình mô -đunLợi thế của việc sử dụng lập trình mô -đun Giới thiệu về Báo cáo nhập khẩu Lợi thế của việc sử dụng lập trình mô -đunGiới thiệu về Báo cáo nhập khẩureadability of codes. We can reuse it a number of times. More, it is easy for us to maintain them and make changes to them according to our use. Moreover, it helps us a lot while debugging our program as we don’t have to fumble much in one file. Giới thiệu về Báo cáo nhập khẩuMột khi tất cả các vấn đề độc lập được giải quyết, câu hỏi đặt ra là làm thế nào chúng ta có thể liên kết chúng. Ở đây, tuyên bố nhập khẩu Python đi vào hình ảnh.Python Import statement comes into the picture. Báo cáo nhập giúp nhập mã từ các tệp hoặc mô -đun khác vào tệp chúng tôi đang làm việc. Bạn có thể nghĩ về nó như một cây cầu cho phép chúng tôi truy cập vào các thuộc tính hoặc phương thức của lớp từ các tệp khác để chúng tôi có thể sử dụng chúng. Tuy nhiên, có một cú pháp thích hợp để làm theo để làm điều mà chúng ta sẽ thấy trong vài giây. Trước đó lần đầu tiên hiểu cấu trúc thư mục đã cho. helps in importing code from other files or modules into the file we are working on. You can think of it as a bridge that gives us access to the class attributes or methods from other files so that we can use them. However, there is a proper syntax to follow to do that which we will see in a few seconds. Before that first understand the given directory structure.
Vì vậy, trong cấu trúc thư mục đã cho, chúng tôi có một thư mục ứng dụng chứa hai thư mục có tên Module1 và Module2. Bên trong mỗi thư mục, chúng tôi có các tệp có tên FILE1, FILE2 và FILE3 tương ứng. Bây giờ, chúng tôi sẽ thảo luận về các kịch bản khác nhau của việc nhập các lớp hoặc tệp từng cái một. Chúng tôi đi đây, Trong ví dụ này, trước tiên, chúng tôi sẽ xác định một lớp trong file1.py và sau đó nhập nó vào File2.py.
class ArithmeticOperations: def __init__(self): self.sum_ = 0 def get_sum(self,num1,num2): self.sum_ = num1+num2 return self.sum_
import file1 obj = file1.ArithmeticOperations() c = obj.get_sum(3,8) print(c)
Trong ví dụ trên, chúng tôi đã nhập FILE1 bằng cách sử dụng câu lệnh nhập khẩu. Sau đó, chúng tôi tạo một thể hiện của lớp chúng tôi muốn sử dụng, tức là các hoạt động học bằng cách tham khảo nó. Chúng ta có thể hiểu nó như;“import” statement. After that, we create an instance of the class we want to use i.e. ArithmeticOperations by referring to it. We can understand it as;
Chúng tôi cũng có thể làm điều đó bằng cách sử dụng câu lệnh từ nhập từ nhập khẩu. Hãy nhìn vào nó;“from from file1 import ArithmeticOperations obj = ArithmeticOperations() print(obj.get_sum(9,11)) 0Nhập tất cả các lớp từ một tệp khácTrong phần này, chúng tôi sẽ thảo luận rằng chúng tôi có thể nhập tất cả các lớp cùng một lúc từ một tệp khác. Đôi khi, đó là kịch bản cần thiết để nhập tất cả các lớp từ các tệp khác. Trong trường hợp đó, chúng tôi sử dụng câu lệnh từ nhập từ nhập từ *. Chúng ta có thể đọc nó như từ nhập file_name. Nó có nghĩa là chúng tôi đã nhập tất cả các lớp có sẵn từ tệp đã cho. Hãy cùng nhìn vào ví dụ của nó.from
2
4 5Nhập các lớp từ một thư mục khácTrong ví dụ này, chúng tôi sẽ sử dụng lớp ArithMeticOperations trong File3.py i.e nằm trong một thư mục khác i.e Module1. Nhưng trước khi làm điều đó, chúng tôi phải bao gồm tệp __init__.py trong Module1, nói với trình thông dịch rằng mô -đun nằm trong cùng một gói.__init__.py file in module1 which tells the interpreter that the module is within the same package. Chúng tôi cũng phải chỉ định đường dẫn của Module1. Đối với điều đó, chúng tôi sẽ sử dụng mô -đun SYS SYS. Hãy cùng nhìn vào mã. 6 7‘Sys.path.insert (0 ,, .. Nhập các lớp từ các thư viện được xác định trướcTrong ví dụ trên, chúng tôi đã sử dụng Sys Sys, một thư viện được xác định trước và chúng tôi muốn nhập nó và sử dụng các chức năng của nó. sys.path.insert (); Chúng tôi có thể hiểu rằng chúng tôi muốn sử dụng phương thức chèn từ lớp đường dẫn có trong mô -đun SYS. Sử dụng các phụ thuộc và mô -đun như vậy làm cho các tác phẩm của chúng tôi dễ dàng hơn vì chúng tôi không cần phải viết mã cho các chức năng đó một cách rõ ràng. Chúng tôi chỉ cần kiến thức về gói đã cho và cách sử dụng nó.; We can understand, that we want to use the insert method from the path class that is present in the sys module. Using such dependencies and modules make our works easier as we don’t need to write code for those function explicitly. We just need the knowledge of the given package and how to use it. Câu hỏi thường gặpLớp nhập Python từ một tệp khác không hoạt động Trong trường hợp này, vấn đề nằm trong tham chiếu của lớp nguồn bạn muốn nhập. Câu trả lời cho câu hỏi này phụ thuộc vào các điều kiện khác nhau mà bạn muốn nhập tệp. Chúng tôi đã thảo luận về tất cả những điều trên và bạn có thể tham khảo chúng theo điều kiện của bạn. Làm thế nào để sử dụng __Import__ để nhập một lớp từ các tệp khác trong Python? Chúng ta có thể sử dụng mã sau trong File2.py để nhập lớp từ File1 một cách linh hoạt. lớp Dynamic_Import: def __init __ (self, module_name, class_name): #__Init__ Phương thức được sử dụng để nhập mô -đun lấy tên mô -đun làm mô -đun tham số = __Import __ (module_name) # getAttr () được sử dụng để nhập tên lớp Mẫu mô -đun mà chúng tôi đã nhập class_nm = getattr (mô -đun, class_name) data = class_nm.get_sum (class_nm, 3,8) in (dữ liệu) obj = Dynamic_Import (Hồi File1, arithmeticoperations Làm thế nào để nhập lớp động? Chúng ta có thể nhập lớp động bằng cách sử dụng hàm __Import__ hàm ma thuật hoặc mô -đun imp. Xem nó bằng một ví dụ;__import__ magic function or imp module. Nhập khẩu SYS IMPIMPORT #DODNAMIC INTIRTDEF Dynamic_imp (Tên, Class_Name): # Imp.Find_Module () Trả về đường dẫn và mô tả của mô -đun đã cho 8def dynamic_imp(name, class_name): # imp.find_module() returns the path and description of given module 8#imp.load_module () Trả về lớp hoặc gói 9 0 1 9 0 1if name == Main Mainname == “main“: Làm cách nào để nhập một lớp từ một máy tính xách tay Jupyter khác? # Chạy lệnh sau! Cài đặt PIP IPynb # Bạn có thể nhập các máy tính xách tay khác bằng cách sử dụng từ ipynb.fs.full. nhập khẩu * Sự kết luậnVì vậy, hôm nay chúng tôi đã xem xét làm thế nào chúng tôi có thể nhập các lớp từ các tệp hoặc thư mục khác. Chúng tôi cũng có được kiến thức về lập trình mô -đun và tuyên bố nhập khẩu. Chúng tôi đã xem xét, lập trình mô -đun đã thay đổi cách tiếp cận lập trình và làm cho nó dễ dàng hơn.Modular Programming and Import Statement. We looked, Modular programming changed the approach of programming and made it easier. Tôi hy vọng bài viết này đã giúp bạn. Tiếp tục hỗ trợ. Cảm ơn! Xu hướng các bài báo Python
Mỗi lớp có nên có một tệp riêng không?Đó là thực hành tốt để làm như vậy.Bạn có thể dễ dàng tìm thấy lớp nếu bạn đặt tên cho tệp theo lớp.. You can easily find the class if you name the file after the class.
Bạn có thể có nhiều lớp Python trong một tệp không?Vì vậy, một mô -đun là một đơn vị hoặc tái sử dụng.Quy tắc là: Một mô -đun là đơn vị tái sử dụng.Tất cả mọi thứ trong các thư viện Python và các ứng dụng Python khác là một mô -đun hoặc gói mô -đun.Không có giới hạn về số lượng lớp mà người ta có thể đặt trong một tệp hoặc một mô -đun.There is no limit on how many classes one can put in a file or a module.
Một lớp có nên có tệp riêng không?Vì vậy, trình biên dịch không nên lo lắng quá nhiều về việc liên kết một lớp không công khai vì đây là những điều riêng tư với gói.Nhưng chúng ta nên luôn luôn khai báo mọi lớp trong tệp riêng của mình bởi vì chúng tôi sẽ làm cho nguồn ngắn, đơn giản, được tổ chức tốt và dễ hiểu.we should always declare every class in its own file because it we will make the source short, simple, well organised and easy to understand.
Các lớp con có nên ở trong cùng một tệp?Bạn không cần phải, nhưng nói chung, có.Giữ một lớp con trong cùng một tệp sẽ là ngoại lệ đối với quy tắc.Trước hết, bạn không nên chỉ xếp hàng tấn mã vào một tệp.Keeping a subclass in the same file would be the exception to the rule. First of all, you shouldn't just pile tons of code into a single file. |