Hướng dẫn import function from another class python - chức năng nhập khẩu từ một lớp python khác

Nếu, giống như tôi, bạn muốn tạo một gói chức năng hoặc một cái gì đó mà mọi người có thể tải xuống thì nó rất đơn giản. Chỉ cần viết chức năng của bạn trong một tệp Python và lưu nó dưới dạng tên bạn muốn trong thư mục Python của bạn. Bây giờ, trong tập lệnh của bạn, nơi bạn muốn sử dụng cái này, bạn gõ:

from FILE NAME import FUNCTION NAME

Lưu ý - Các phần trong các chữ cái viết hoa là nơi bạn nhập tên tệp và tên chức năng.

Bây giờ bạn chỉ cần sử dụng chức năng của mình tuy nhiên nó có nghĩa là.

Example:

Tập lệnh chức năng - được lưu tại c: \ python27 dưới dạng function_choose.py

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)

Tập lệnh sử dụng chức năng - được lưu bất cứ nơi nào

from function_choose import choose
list_a = ["dog", "cat", "chicken"]
print(choose(list_a))

Đầu ra sẽ là chó, mèo hoặc gà

Hy vọng điều này sẽ giúp, bây giờ bạn có thể tạo các gói chức năng để tải xuống!

-------------------------------- Đây là cho Python 2.7 ----------------- ------------------------

Một thời gian có thể đến trong hành trình mã hóa của bạn khi bạn sẽ viết một mã rất phức tạp và mọi thứ sẽ ngừng có ý nghĩa. Chương trình của bạn sẽ bị rối một cách phức tạp như vậy, rằng bạn sẽ bị nhầm lẫn và sẽ ngồi nhìn chằm chằm vào màn hình về nơi để tiến về phía trước từ đây. & NBSP; Những gì các lập trình viên có kinh nghiệm làm trong tình huống như vậy là họ chia toàn bộ chương trình thành các khối hoặc mô -đun và sau đó đưa chúng vào các tệp khác nhau. Khi làm như vậy, họ giảm độ phức tạp của chương trình, giúp họ dễ dàng gỡ lỗi và xác định lỗi. Để sử dụng một lớp hoặc phương thức, được lưu trữ trong một tệp Python khác, chúng tôi cần nhập lớp vào tệp làm việc của mình. & NBSP;

Trong bài viết này, chúng tôi sẽ làm cho bạn quen thuộc với quá trình nhập một lớp từ một tệp khác trong Python. Nhưng trước khi lặn thẳng vào các lớp nhập khẩu, chúng ta hãy xóa một số điều cơ bản.importing a class from another file in python. But before diving straight into importing classes, let us clear some basics.

Một lớp học trong Python là gì?

Một lớp là một bản thiết kế hoặc nguyên mẫu được người dùng xác định và được sử dụng để xây dựng mọi thứ. Các lớp cho phép bạn nhóm dữ liệu và chức năng cùng nhau. Một lớp mới giới thiệu một loại đối tượng mới, cho phép tạo ra các trường hợp mới thuộc loại đó. Mỗi phiên bản của một lớp có thể có các thuộc tính được liên kết với nó để theo dõi trạng thái của nó. Các phiên bản lớp cũng có thể có các phương thức thay đổi trạng thái của chúng (được chỉ định bởi lớp của họ).

Hãy xem xét tình huống sau: Chúng tôi muốn theo dõi khách hàng trong một khách sạn. Vì vậy, mỗi khách hàng sẽ có một số thuộc tính chung như tên, tuổi, ngày sinh, ngày nhận phòng, ngày thanh toán, v.v. Nhưng các giá trị của các thuộc tính này sẽ khác nhau cho mỗi khách hàng. Do đó, chúng tôi tạo ra một kế hoạch chi tiết cho khách hàng ở trong khách sạn của chúng tôi và sau đó tạo các trường hợp của lớp khách hàng, cho phép chúng tôi lưu trữ các giá trị tài sản cụ thể cho mỗi khách hàng. & NBSP;

Ngoài ra, tìm hiểu làm thế nào để có được một tên lớp trong Python.

Một lớp tạo cấu trúc dữ liệu do người dùng xác định với các thành viên dữ liệu và phương thức thành viên của riêng mình có thể được truy cập và sử dụng bằng cách thiết lập một thể hiện lớp. Một lớp tương tự như bản thiết kế của một đối tượng.

Tại sao chúng ta cần nhập một lớp từ một tệp khác trong Python?

Bây giờ, đây là một câu hỏi rất hay. Như đã thảo luận ở trên khi viết các chương trình dài, mã có xu hướng trở nên phức tạp và khó hiểu. Do đó để tăng khả năng đọc và khả năng hiểu của mã, các lập trình viên thường tuân theo cách tiếp cận mô -đun.

Lập trình mô -đun là một mô hình lập trình trong đó thay vì phát triển mã cho một vấn đề lớn duy nhất, chúng tôi chia nó thành nhiều vấn đề nhỏ hơn. Chúng tôi sẽ kết hợp tất cả chúng lại với nhau một khi chúng tôi đã giải quyết tất cả để đạt được mục tiêu chính của chúng tôi.

Theo cách tiếp cận mô -đun làm tăng khả năng tái sử dụng của mã. Điều này có nghĩa là một tập hợp các câu lệnh được lặp lại nhiều lần bên trong mã có thể được đặt bên trong một hàm và hàm đó có thể được gọi bất cứ khi nào các bộ câu lệnh đó cần được thực thi. Cách tiếp cận này làm cho chúng tôi đơn giản để quản lý chúng và thực hiện sửa đổi dựa trên nhu cầu của chúng tôi. Hơn nữa, nó thực sự hỗ trợ chúng tôi trong việc gỡ lỗi chương trình của chúng tôi vì chúng tôi không phải gây rối với nhiều tệp.

Do đó, để thực hiện một cách tiếp cận mô -đun, chúng tôi yêu cầu báo cáo nhập.

Làm thế nào để nhập lớp từ một tệp khác trong Python?

Nếu bạn quen thuộc với ngôn ngữ lập trình C ++ thì bạn phải nhận thấy #include trong C ++, dòng #include thực hiện cùng một câu lệnh nhập đạt được trong Python. 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.

Báo cáo nhập khẩu

Bây giờ một mô tả nhỏ về tuyên bố nhập khẩu. Câu lệnh nhập cho phép chúng tôi nhập mã từ các tệp hoặc mô -đun khác vào tệp hiện tại. Bạn có thể coi đó là một liên kết cho phép chúng tôi truy cập các thuộc tính hoặc phương thức lớp từ các tệp khác và sử dụng chúng.

Cú pháp của các báo cáo nhập như sau:

trong đó mô -đun là mô -đun mà bạn muốn nhập.

Để nhập lớp, cú pháp là:

from fileName import className

Đây là tên tệp là tên của tệp mà chúng tôi muốn nhập một lớp và tên lớp là tên của lớp được nhập

Nhập các lớp từ một tệp khác trong cùng một thư mục

Hãy tưởng tượng chúng ta phải tuân theo cấu trúc thư mục:

Main
  |-- animal_def.py
  |-- file.py

Tệp Animal_def.py chứa một lớp như hình dưới đây:

class Animal:

    def print_animal(self):
        return 'This is animal class'

Bây giờ để sử dụng lớp này bên trong tệp tệp.py, chúng ta cần sử dụng cú pháp thứ hai được đề cập ở trên, trong trường hợp này sẽ trở thành:

From animal_def import Animal

Bây giờ lớp được bao gồm trong tệp Tệp.py. Hãy tưởng tượng mã của lớp động vật được sao chép vào tệp.py. Bây giờ chúng ta có thể sử dụng nó như một lớp bình thường bên trong tệp file.py. Vì vậy, mã bên trong tệp.py sẽ trông giống như thế này:

#file.py
# import Animal class
from animal_def import Animal

# create object of class
animal = Animal()

# call class method
print(animal.print_animal())

Output:

Vì ở đây, chúng tôi đang nhập từ một tệp có trong cùng một thư mục, do đó, chúng tôi cũng có thể nhập động vật lớp bằng cách sử dụng câu lệnh sau.

Mã bên trong tệp file.py sẽ trở thành

#file.py
# import Animal class
import animal_def

# create object of class
animal = animal_def.Animal()

# call class method
print(animal.print_animal())

Output:

Lưu ý làm thế nào ở đây, đường dẫn đầy đủ đến lớp cần được cung cấp để truy cập nó.

Lưu ý: Bạn có thể nhập nhiều hơn một lớp từ cùng một tệp trong Python bằng cách tách tên lớp bằng dấu phẩy. Ví dụ,

From FileName import class1, class2, class3, ………

Nhập tất cả các lớp từ một tệp khác trong cùng một thư mục

Ở đây chúng tôi sẽ sử dụng cùng một cấu trúc thư mục, được sử dụng trong trường hợp trước. Nhưng mã trong tệp Animal_def.py được cập nhật để chứa mã sau:

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
0

Để nhập tất cả các lớp từ một tệp bên trong một tệp khác, cú pháp là

* Chỉ ra tất cả các lớp. Vì vậy, để sử dụng cả hai lớp bên trong tệp Animal_def.py bên trong tệp File.py mà chúng ta có thể viết:

Bây giờ, chúng ta có thể sử dụng cả hai lớp bên trong tệp tệp.py như thể chúng được viết bên trong nó.

Ví dụ:

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
1

Output:

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
2

Việc sử dụng dấu * có vẻ không có ý nghĩa lắm vào thời điểm này & nbsp; vì tệp Animal_def.py chỉ chứa hai định nghĩa lớp. Hãy tưởng tượng những gì một nhiệm vụ tẻ nhạt nó có thể đã trở thành để nhập tất cả các lớp theo tên nếu tệp có chứa hàng chục định nghĩa lớp. Đó là khi dấu * có ích. & nbsp;

Nhập các lớp từ một thư mục khác

Nhiều lần nó xảy ra rằng tệp chúng tôi muốn nhập từ không có trong thư mục làm việc hiện tại của chúng tôi. Giả sử rằng cấu trúc thư mục như sau:

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
3

Bây giờ, để có thể sử dụng các lớp tệp Animal_def.py bên trong tệp File1.py, trước tiên chúng ta cần thêm một tệp có tên __init__.py bên trong thư mục mô -đun. Tệp này thông báo cho trình thông dịch Python rằng thư mục mô -đun là một gói chứa các tệp có định nghĩa lớp. Tệp này có thể bị bỏ trống.

Cấu trúc thư mục được cập nhật trở thành:

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
4

Trong trường hợp này, cú pháp nhập lớp khác từ một thư mục khác trở thành

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
5

Vì vậy, trong trường hợp của chúng tôi, câu lệnh nhập sẽ như sau:

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
6

Bây giờ, chúng ta có thể sử dụng lớp động vật bên trong tệp File1.py. Nhìn vào mã mẫu cho tệp File1.py bên dưới:

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
7

Output:

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
2

Chúng ta hãy lấy một ví dụ khác, giả sử cấu trúc thư mục như sau:

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
9

Trong trường hợp này, để có thể sử dụng lớp động vật bên trong tệp File1.py, chúng ta cần sử dụng đường dẫn hoàn chỉnh cho tệp với tên của các thư mục được phân tách bởi toán tử DOT. Vì vậy, câu lệnh nhập, trong trường hợp này, sẽ trông như sau:

from function_choose import choose
list_a = ["dog", "cat", "chicken"]
print(choose(list_a))
0

Một điểm quan trọng khác ở đây là tệp __init__.py không cần phải được đưa vào cả hai thư mục, nó chỉ cần có trong thư mục chính.

Nhập các lớp từ một thư mục khác bằng mô -đun SYS

Hãy tưởng tượng cấu trúc thư mục như sau:

from function_choose import choose
list_a = ["dog", "cat", "chicken"]
print(choose(list_a))
1

Trong trường hợp này, chúng tôi sẽ cần sử dụng một thư viện được xác định trước có tên là SYS. Sau đó, chúng tôi sử dụng mô -đun sys.path.insert () để nói với trình thông dịch Python về nơi tìm mô -đun. Vì vậy, chúng tôi cần nói với trình thông dịch xem thư mục trên thư mục hiện tại, do đó, chúng tôi sử dụng ‘..sys. Then we use the sys.path.insert() module to tell the Python interpreter to where to look for the module. So we need to tell the interpreter to look at the directory above the current directory, therefore, we use ‘..’

Ví dụ:

from function_choose import choose
list_a = ["dog", "cat", "chicken"]
print(choose(list_a))
2

Output:

def choose(a):
  from random import randint
  b = randint(0, len(a) - 1)
  c = a[b]
  return(c)
2

Việc sử dụng dấu * có vẻ không có ý nghĩa lắm vào thời điểm này & nbsp; vì tệp Animal_def.py chỉ chứa hai định nghĩa lớp. Hãy tưởng tượng những gì một nhiệm vụ tẻ nhạt nó có thể đã trở thành để nhập tất cả các lớp theo tên nếu tệp có chứa hàng chục định nghĩa lớp. Đó là khi dấu * có ích. & nbsp;

Nhập các lớp từ một thư mục kháconline python tutors who are available 24/7.

Bạn có thể nhập các chức năng từ một tệp Python khác không?

Để sử dụng các chức năng được viết trong một tệp bên trong một tệp khác bao gồm dòng nhập, từ FileName Nhập chức năng_name.Lưu ý rằng mặc dù tên tệp phải chứa a.Tiện ích mở rộng PY,.PY không được sử dụng như một phần của tên tệp trong quá trình nhập.include the import line, from filename import function_name . Note that although the file name must contain a . py extension, . py is not used as part of the filename during import.

__ nhập khẩu __ trong python là gì?

Người ta có thể sử dụng hàm __Import __ () của Python.Nó cũng giúp nhập các mô -đun trong thời gian chạy.Cú pháp: __Import __ (Tên, Globals, Locals, FromList, Level) Tham số: Tên: Tên của mô -đun sẽ được nhập.It helps to import modules in runtime also. Syntax: __import__(name, globals, locals, fromlist, level) Parameters: name : Name of the module to be imported.

__ str __ trong Python là gì?

Python __str __ () Phương thức này trả về biểu diễn chuỗi của đối tượng.Phương thức này được gọi là hàm in () hoặc str () được gọi trên một đối tượng.This method returns the string representation of the object. This method is called when print() or str() function is invoked on an object.

Tôi có thể nhập __ init __ không?

Có hai loại gói trong các gói Python, thường xuyên và không gian tên.Cái trước yêu cầu tệp __init__.py trong khi cái sau thì không.Bất kỳ thư mục nào có tệp python init python được đánh dấu là một gói của Python và có thể được nhập.Any directory with an init python file is marked as a package by python and can be imported.