Chúng tôi sử dụng khái niệm Lập trình hướng đối tượng (OOP) để tránh các tình huống như vậy, trong đó chúng tôi sử dụng chương trình thường xuyên bất cứ khi nào chúng tôi cần khi làm việc với Python
Bài viết này sẽ trình bày cách nhập một lớp từ một tệp khác trong Python bằng các phương thức khác nhau
OOP trong Python
Lập trình hướng đối tượng (OOPs) là một mô hình lập trình trong Python sử dụng các đối tượng và lớp. Mục tiêu của nó là sử dụng lập trình để tạo ra các khái niệm trong thế giới thực như kế thừa, đa hình và đóng gói
Ý tưởng chính đằng sau OOP là kết hợp dữ liệu và các thuật toán hoạt động với nó thành một đơn vị duy nhất, mặc dù không có phần nào khác của chương trình có thể truy cập dữ liệu đó
Bây giờ, chúng ta hãy xem qua một ví dụ trong đó chúng ta sẽ phát triển một hàm để thực hiện một số thao tác và chúng ta sẽ cố gắng nhập nó từ tệp đó vào tệp mới của mình
Đầu tiên, chúng ta hãy tạo một tệp mới,
# NGimportos,sys# OKimportosimportsys
8, với một lớp thực hiện một số chức năng như hình bên dưới
Chúng tôi sẽ nhập tệp này vào một tệp khác mà chúng tôi muốn sử dụng lớp và các chức năng của nó. Cả hai tệp phải được đặt trong cùng một thư mục để dễ dàng nhập chúng hơn
Khi chúng tôi đã nhập tệp, chúng tôi sẽ sử dụng lớp
# NGimportos,sys# OKimportosimportsys
9 và tính tổng của 2 số, như hình dưới đây
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
đầu ra
Từ ví dụ trên, chúng ta dễ dàng import lớp
# NGimportos,sys# OKimportosimportsys
9 và sử dụng hàm của nó để tạo tổng 2 số
Nhập nhiều lớp từ một tệp khác trong Python
Bây giờ, chúng ta sẽ xem cách nhập tất cả các lớp từ một tệp khác. Có thể cần phải nhập tất cả các lớp từ các tệp khác
Chúng ta có thể đọc nó bằng lệnh
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
01. Điều này chỉ ra rằng chúng tôi đã nhập tất cả các lớp từ tệp được cung cấp
Chúng tôi sử dụng câu lệnh
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
02 trong tình huống này. Câu lệnh này nhập tất cả các lớp từ tệp, như hình bên dưới
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
Bây giờ chúng ta sẽ nhập tất cả các lớp từ tệp của mình và sử dụng chúng trong một hàm. Như được hiển thị bên dưới, chúng tôi sử dụng
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
0 thay vì tên lớp để nhập tất cả các lớp từ một tệp
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
đầu ra
Nhập lớp từ thư mục khác trong Python
Bây giờ, giả sử chúng ta muốn nhập một lớp từ một tệp nằm trong một thư mục khác. Hãy hiểu nó tốt hơn với một ví dụ
Chúng tôi sẽ sử dụng lớp
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
1 trong Numsum. py, nằm trong một thư mục khác, tôi. e. , Thư mục mới. Chúng ta cũng phải chỉ định đường dẫn của NewFolder
Đối với điều đó, chúng tôi sẽ sử dụng mô-đun
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
20 như sau.
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
51 trống
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
62
Nếu bạn viết
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
22, bạn không thể sử dụng các mô-đun bên dưới nó. Ví dụ:
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
23 gây ra lỗi
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
50
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
63
nguồn. nhập_example_package_urllib. py
Bạn cần nhập các mô-đun với
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
25
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
64
nguồn. nhập_example_package_urllib. py
Bạn cũng có thể viết
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
26
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
65
nguồn. nhập_example_package_urllib. py
Cũng có thể chỉ định một lớp được định nghĩa trong mô-đun và nhập nó
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
66
nguồn. nhập_example_package_urllib. py
Lưu ý rằng nếu mã khởi tạo không được viết bằng
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
51 như thế này, bạn cần nhập mô-đun bên dưới nó
Nếu bạn đang sử dụng IPython/Jupyter Notebook, bạn có thể sử dụng
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
28 chỉ bằng cách nhập
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
20. Hành vi này là do quá trình khởi động IPython gây ra
nhập urllib. phân tích cú pháp không thành công khi Python chạy từ dòng lệnh
bộ sưu tập
Như một ví dụ khác, giới thiệu các bộ sưu tập
bộ sưu tập — Kiểu dữ liệu vùng chứa — Python 3. 10. 0 tài liệu
Thư mục
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
40 bao gồm những điều sau đây
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
67
Trong các bộ sưu tập, các lớp như
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
41 và
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
42 được định nghĩa trong
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
51 thay vì lưu trữ các tệp mô-đun như urllib
cpython/Lib/bộ sưu tập tại master · python/cpython
Trong trường hợp này, khi bạn nhập một gói, bạn có thể sử dụng lớp là
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
44
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
68
nguồn. nhập_example_package_collections. py
Bạn không thể nhập lớp học với
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
44
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
69
nguồn. nhập_example_package_collections. py
Bạn có thể nhập các lớp học với
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
70
# NGimportos,sys# OKimportosimportsys
0
nguồn. nhập_example_package_collections. py
NumPy
Ví dụ về thư viện bên thứ ba, NumPy
Trong NumPy, mỗi gói phụ được nhập vào
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
51 trong thư mục
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
48
numpy / numpy. Kho lưu trữ chính Numpy
Bạn không cần nhập từng mô-đun. Chỉ cần viết
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
49 để sử dụng các chức năng khác nhau
scikit-học
Trường hợp của scikit-learning thì khác
scikit-learning không nhập các gói phụ trong
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
51 trong thư mục
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
71
scikit-learning/scikit-learning. scikit-học. máy học trong Python
Bạn cần nhập các gói con một cách rõ ràng, như sau
# NGimportos,sys# OKimportosimportsys
1
nguồn. sklearn_iris_svm. py
Các lỗi thường gặp liên quan đến nhập khẩu
# NG
import os, sys
# OK
import os
import sys
9
Lỗi không tìm thấy mô-đun
# NGimportos,sys# OKimportosimportsys
2
Tên của mô-đun hoặc đường dẫn tìm kiếm mô-đun có thể sai
Kiểm tra và thêm đường dẫn tìm kiếm mô-đun với sys. đường dẫn trong Python
Như thể hiện trong ví dụ về các bộ sưu tập ở trên,
# NGimportos,sys# OKimportosimportsys
9 cũng được nâng lên khi bạn cố gắng nhập một lớp thay vì một mô-đun. Sử dụng
# python
class Operations:
def __init__(self):
self.sum = 0
def To_sum(self,a,b):
self.sum = a + b
return self.sum
class showData:
def __init__(self):
self.DATA= ""
def show_data(self,INFO):
self.INFO = INFO
return self.INFO
70 để nhập một hàm hoặc một lớp
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
50
Lỗi mô-đun đã nhập không có thuộc tính được chỉ định
# NGimportos,sys# OKimportosimportsys
3
Có thể là không nhập đúng tệp
Ví dụ: khi bạn viết
# python
import Operations from Numsum
obj = Numsum.Operations()
Sum = obj.To_sum(4,12)
print("Sum is :",Sum)
55, ưu tiên hàng đầu để tìm kiếm mô-đun là cùng thư mục với tệp tập lệnh được thực thi, vì vậy nếu có một tệp có tên
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
77 trong thư mục, thì tệp đó sẽ được nhập
Kiểm tra và thêm đường dẫn tìm kiếm mô-đun với sys. đường dẫn trong Python
Sử dụng
# python
from NumSum import *
obj1 = Operations()
print(obj1.To_sum(15,16))
obj2 = showData()
print(obj2.show_data( "Importing Multiple classes from NumSum"))
78 để kiểm tra xem tệp có được nhập từ vị trí dự kiến hay không và nếu không, hãy đổi tên hoặc di chuyển tệp
Bạn có thể có nhiều lớp trong một tệp Python không?
Khoa học dữ liệu thực tế sử dụng Python
. Quy luật là thế này. một mô-đun là đơn vị tái sử dụng. Mọi thứ trong thư viện Python và các ứng dụng Python khác đều là mô-đun hoặc gói mô-đun. Không có giới hạn về số lượng lớp mà một người có thể đặt trong một tệp hoặc một mô-đun .
Bạn có thể nhập các lớp bằng Python không?
Python cung cấp cho chúng ta nhiều cách khác nhau để chúng ta có thể nhập các lớp và hàm bằng cách sử dụng câu lệnh nhập .
Làm cách nào để nhập lớp từ một tệp Python khác trong cùng thư mục?
Tạo một tệp trống có tên __init__. py trong cùng thư mục với các tệp . Điều đó sẽ biểu thị cho Python rằng "có thể nhập từ thư mục này". Điều tương tự cũng đúng nếu các tệp nằm trong thư mục con - đặt __init__. py trong thư mục con, sau đó sử dụng các câu lệnh nhập thông thường, với ký hiệu dấu chấm.
Chúng tôi có thể nhập nhiều mô-đun bằng Python không?