Hướng dẫn import class from another file python - nhập lớp từ một tệp python khác

Trước khi bạn đánh dấu nó là trùng lặp, vui lòng đọc vấn đề của tôi: please read my problem:

Tôi đang cố gắng nhập một lớp từ một tệp từ một thư mục con

> main.py
> --->folder/
> ----->file.py

và trong

from folder import file
from file import Klasa
4 tôi có một lớp học (
from folder import file
from file import Klasa
5) tôi đã thử gì:

đưa vào main.py:

from folder import file
from file import Klasa

Tôi đang gặp lỗi:

Từ nhập tệp klasa

IrtUterror: Không có mô -đun có tên 'Tệp'

Khi tôi cố gắng sử dụng chỉ:

from folder import file

Tôi nhận được lỗi này:

tmp = klasa ()

NameError: Tên 'Klasa' không được định nghĩa

Tôi đã đặt một

from folder import file
from file import Klasa
6 trống trong thư mục con và nó vẫn không hoạt động, và tôi đã đặt vào
from folder import file
from file import Klasa
6:
from folder import file
from file import Klasa
8 và vẫn không hoạt động.

Nếu chính và tệp nằm trong cùng một thư mục, công việc này:

from folder import file
from file import Klasa
8

Nhưng tôi muốn chúng ở trong các tập tin riêng biệt.

Ai đó có thể cho tôi biết tôi đang làm gì sai không?

Khi chương trình rất phức tạp, chúng tôi thường chia nó thành các đoạn hoặc mô -đun và được lưu vào nhiều tệp. Điều này làm giảm sự phức tạp và giúp dễ dàng gỡ lỗi hoặc xác định các lỗi trong mã. Giả sử bạn muốn sử dụng một lớp trong một tệp khác. Đối với điều này, bạn cần nhập lớp đó vào tệp nơi bạn muốn sử dụng nó.

Trong hướng dẫn này, chúng tôi sẽ thảo luận về một số phương pháp được sử dụng để nhập các lớp. Nhập các lớp từ các chương trình khác cho phép chúng tôi sử dụng chúng trong chương trình hiện tại. Do đó, giúp cải thiện khả năng đọc và khả năng tái sử dụng của mã. Nhập khẩu có thể được thực hiện trong cùng hoặc từ các thư mục khác nhau.

Nếu bạn muốn tìm hiểu thêm về lập trình Python, hãy truy cập các hướng dẫn lập trình Python.

Một số cách phổ biến để nhập một lớp từ một tệp khác trong Python được liệt kê bên dưới

  • Nhập một lớp cụ thể bằng cách sử dụng lệnh nhập.
  • Nhập các lớp Mulitple từ một tệp bằng lệnh nhập.
  • Nhập tất cả các lớp từ một tệp bằng lệnh nhập*.
  • Nhập tất cả các lớp từ một thư mục khác trong thư mục cha bằng lệnh nhập SYS.
  • Nhập một lớp một cách linh hoạt.

Nhập một lớp cụ thể bằng cách sử dụng lệnh nhập

Bạn chỉ cần tạo một tệp .py khác giống như myfile.py và biến lớp thành tên mong muốn. Sau đó, trong tệp chính chỉ cần nhập lớp bằng dòng lệnh từ hình vuông nhập khẩu myfile.from MyFile import Square.

#Code starts here

MyFile.py
class Square:
   def __init__(self,val):
      self.val=val
   def getVal(self):
      return self.val*self.val

main.py
from MyFile import Square

newClass = Square(5)
val = newClass.getVal()

print(val)

#Code ends here

Output:
25

Nhập nhiều lớp từ một tệp bằng lệnh nhập

Khi bạn có nhiều lớp trong myfile.py. Sau đó, thay vì viết lệnh nhập với mỗi lớp, bạn chỉ cần nhập tệp chứa các lớp và trong tệp chính. Sử dụng các lớp này bằng cách tạo các đối tượng tương ứng của chúng.

#Code starts here

MyFile.py
class Square:
   def __init__(self,val):
      self.val=val
   def getVal(self):
      return self.val*self.val


class Add_Sub:
   def add(self, a, b):
      return a + b
   def sub(self, a, b):
      return a - b

main.py
import MyFile
# creating object for Square class
object1 = MyFile.Square(5)
print(f"From class Square: {object1.getVal()}")
# creating object for Add_Sub class
object2 = MyFile.Add_Sub()
print(f"From class Add_Sub: Addition {object2.add(2,3)}")
print(f"From class Add_Sub: Subtraction {object2.sub(2,3)}")

#Code ends here

OUTPUT:

From class Square: 25
From class Add_Sub: Addition 5
From class Add_Sub: Subtraction -1

Nhập tất cả các lớp từ một tệp bằng lệnh nhập *

Ở đây bạn chỉ cần viết một dấu hoa thị (*) & nbsp; với lệnh nhập i.e, nhập*. Lệnh này cho phép truy cập vào tất cả các lớp và bạn không cần phải viết tên của lớp với mọi chức năng. Bạn chỉ cần làm cho đối tượng với lớp tương ứng đó.

#Code starts here

MyFile.py
class Square:
   def __init__(self,val):
      self.val=val
   def getVal(self):
      return self.val*self.val


class Add_Sub:
   def add(self, a, b):
      return a + b
   def sub(self, a, b):
      return a - b

main.py
from MyFile import *
# creating object for Square class
object1 = Square(5)
print(f"From class Square: {object1.getVal()}")
# creating object for Add_Sub class
object2 = Add_Sub()
print(f"From class Add_Sub: Addition {object2.add(2,3)}")
print(f"From class Add_Sub: Addition {object2.sub(2,3)}")

#Code ends here

Output:

From class Square: 25
From class Add_Sub: Addition 5
From class Add_Sub: Addition -1

Nhập tất cả các lớp từ một thư mục khác trong thư mục mẹ bằng lệnh nhập SYS

Ở đây bên trong_project là thư mục đang giữ tệp của các lớp của chúng tôi. Tệp chính nằm trong một thư mục khác ‘Project2, cũng là thư mục gốc của Inside_Project. Trước khi nhập, chúng tôi phải bao gồm tệp __init__.py trong Inside_Project & nbsp; sẽ chứa các lớp của chúng tôi để nói với trình thông dịch rằng dự án của chúng tôi nằm trong cùng một gói.we have to include the __init__.py file in the Inner_Project that will contain our classes to tell the interpreter that our Project is within the same package.

Sys.Path.insert (0, Hồi ..) Yêu cầu người phiên dịch nhìn từ thư mục cha mẹ để loại bỏ lớp mong muốn.“..”) command tells the interpreter to look from the parent folder to take out the desired class.

Địa chỉ: Ứng dụng/Inside_Project/myFile.pyApplication/Inner_Project/MyFile.py

MyFile.py
class Square:
   def __init__(self,val):
      self.val=val
   def getVal(self):
      return self.val*self.val


class Add_Sub:
   def add(self, a, b):
      return a + b
   def sub(self, a, b):
      return a - b

Địa chỉ: Ứng dụng/Project2/Main.pyApplication/Project2/main.py

from folder import file
from file import Klasa
0

from folder import file
from file import Klasa
1

Nhập một lớp một cách linh hoạt

Ở đây, lệnh __Import __ (module_name) được sử dụng để nhập mô -đun hoặc tệp, trong khi getAttr () & nbsp; Lệnh được sử dụng để có được các thuộc tính của lớp.

from folder import file
from file import Klasa
2

from folder import file
from file import Klasa
3

Vui lòng cho chúng tôi biết phản hồi có giá trị của bạn.

Làm cách nào để nhập một lớp từ một tệp PY khác?

Cách nhập một lớp từ một tệp khác trong Python..
Nhập một lớp cụ thể bằng cách sử dụng lệnh nhập ..
Nhập các lớp Mulitple từ một tệp bằng lệnh nhập ..
Nhập tất cả các lớp từ một tệp bằng lệnh nhập* ..
Nhập tất cả các lớp từ một thư mục khác trong thư mục mẹ bằng lệnh nhập SYS ..

Chúng ta có thể nhập lớp trong Python không?

Nó cho phép chúng tôi sử dụng các chức năng và các lớp được giữ trong một số tệp khác bên trong mã hiện tại của chúng tôi.Python cung cấp cho chúng tôi nhiều cách khác nhau để chúng tôi có thể nhập các lớp và chức năng bằng cách sử dụng các câu lệnh nhập.Python provides us with various ways in which we can import classes and functions using the import statements.

Có thể nhập từ một tệp python khác?

Nếu bạn có các tệp Python của riêng bạn mà bạn muốn nhập, bạn có thể sử dụng câu lệnh nhập như sau: >>> Nhập My_File # Giả sử bạn có tệp, my_file.py trong thư mục hiện tại.# Đối với các tệp trong các thư mục khác, cung cấp đường dẫn đến tệp đó, tuyệt đối hoặc tương đối.use the import statement as follows: >>> import my_file # assuming you have the file, my_file.py in the current directory. # For files in other directories, provide path to that file, absolute or relative.

Làm thế nào để bạn thừa hưởng một lớp từ một gói khác trong Python?

Để tạo một lớp kế thừa từ một lớp khác, sau tên lớp, bạn sẽ đặt dấu ngoặc đơn và sau đó liệt kê bất kỳ lớp nào mà lớp của bạn kế thừa.Trong một định nghĩa chức năng, dấu ngoặc đơn sau tên hàm biểu thị các đối số mà hàm chấp nhận.after the class name you'll put parentheses and then list any classes that your class inherits from. In a function definition, parentheses after the function name represent arguments that the function accepts.