Chức năng nhập python từ tập lệnh khác

Sếp của bạn tại Học viện Finxter đã yêu cầu bạn tạo năm (5) lời chào đăng nhập tùy chỉnh cho người dùng của họ. Để giữ cho mã của bạn sạch sẽ, bạn đã quyết định đặt các hàm này vào một tệp Python mới,

from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
9

💡 Lưu ý. Đối với bài viết này, chúng tôi sẽ làm việc với người dùng hư cấu của Học viện Finxter, cdriver

Nội dung chào hỏi. tập tin py

def greeting_am(user):
    return f"Good Morning {user}."
def greeting_lunch(user):
    return f"Enjoy Lunch {user}."
def greeting_break():
    return f"You need a break."
def greeting_aft(user):
    return f"Good Afternoon {user}."
def greeting_pm(user):
    return f"Good Evening {user}."

💬 câu hỏi. Làm cách nào chúng ta viết mã Python để nhập tập lệnh Python vào tập lệnh Python khác?

Chúng ta có thể hoàn thành nhiệm vụ này bằng một trong các tùy chọn sau

  • Phương pháp 1. Nhập một Hàm đơn từ một tệp Python khác
  • Phương pháp 2. Nhập 2 Hàm từ một tệp Python khác
  • Phương pháp 3. Nhập tất cả các chức năng từ một tệp Python khác
  • Phương pháp 4. Sử dụng
    import datetime
    0 để đọc trong một tệp Python khác
  • Tập lệnh thưởng

Sự chuẩn bị

Thêm đoạn mã sau vào đầu mỗi đoạn mã. Đoạn mã này sẽ cho phép mã trong bài viết này chạy không có lỗi

import datetime

Phương pháp 1. Nhập một hàm từ một tệp Python khác

Nếu người dùng Finxter đăng nhập trong phạm vi đã nêu (_______41), mã này giả định rằng trời đã sáng và thông báo

import datetime
0 sẽ hiển thị

from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))

Mã này truy xuất ngày hiện tại bằng cách sử dụng

import datetime
1 và lưu nó vào
import datetime
2

Tiếp theo, câu lệnh

import datetime
3 truy xuất giờ hiện tại (
import datetime
4). Nếu giá trị này nằm trong phạm vi đã nêu, thì một (1) hàm được gọi từ
from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
9.
import datetime
0 và thực hiện

Kết quả được xuất ra thiết bị đầu cuối

đầu ra

Chào buổi sáng cdriver

Phương pháp 2. Nhập hai hàm từ một tệp Python khác

Nếu người dùng Finxter đăng nhập trong phạm vi đã nêu

import datetime
7, mã này giả định rằng đó là giờ ăn trưa của người dùng và hiển thị thông báo
import datetime
8 và
import datetime
9

import datetime
2

Mã này truy xuất ngày hiện tại bằng cách sử dụng

import datetime
1 và lưu nó vào
import datetime
2

Tiếp theo, câu lệnh

import datetime
3 truy xuất giờ hiện tại (
import datetime
4). Nếu giá trị này nằm trong phạm vi đã nêu, hai (2) hàm được gọi từ
from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
9.
import datetime
8 và
from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
6, và thực hiện

Kết quả được xuất ra thiết bị đầu cuối

đầu ra

Thưởng thức bữa trưa cdriver.
Bạn cần nghỉ ngơi.

💡 Lưu ý. Nếu mã của bạn chỉ yêu cầu một vài hàm từ tệp Python bên ngoài, thì tốt nhất bạn chỉ nên gọi những hàm bạn cần


Phương pháp 3. Nhập tất cả các chức năng từ một tệp Python khác

Nếu người dùng Finxter đăng nhập trong phạm vi đã nêu

from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
7, mã này giả định rằng đó là buổi chiều và hiển thị thông báo
from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
8

import datetime
1

Mã này truy xuất ngày hiện tại bằng cách sử dụng

import datetime
1 và lưu nó vào
import datetime
2

Tiếp theo, câu lệnh

import datetime
3 truy xuất giờ hiện tại (
import datetime
4). Nếu giá trị này nằm trong phạm vi đã nêu, toàn bộ nội dung của
from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
9 được gọi trong (
import datetime
24) và
from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
8 thực thi

Kết quả được xuất ra thiết bị đầu cuối

đầu ra

chào buổi chiều cdriver

Phương pháp 4. Sử dụng read() để nhập một tệp Python khác

Nếu người dùng Finxter đăng nhập trong phạm vi đã nêu

import datetime
26, mã này giả định rằng đó là buổi tối và hiển thị thông báo
import datetime
27

from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
0

Mã này truy xuất ngày hiện tại bằng cách sử dụng

import datetime
1 và lưu nó vào
import datetime
2

Sau đó, câu lệnh if truy xuất giờ hiện tại (______ 14). Nếu giá trị này nằm trong phạm vi đã nêu, thì toàn bộ nội dung của

from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
9 được đọc trong (
import datetime
12), cho phép truy cập vào tất cả nội dung của tệp này. Đối với ví dụ này,
import datetime
27 thực thi

Cuối cùng, chúng tôi thực thi tệp bằng cách sử dụng (nguy hiểm. ) Hàm

import datetime
14

🌍 Tìm hiểu thêm. Python exec() — Hướng dẫn dành cho hacker về một chức năng nguy hiểm

Hàm

import datetime
15 của Python thực thi mã Python mà bạn truyền dưới dạng một chuỗi hoặc đối số đối tượng thực thi

Điều này được gọi là thực thi động bởi vì, trái ngược với mã Python tĩnh thông thường, bạn có thể tạo mã và thực thi nó trong thời gian chạy

Bằng cách này, bạn có thể chạy mã Python được tạo theo chương trình

Python exec() — Hướng dẫn dành cho hacker về một chức năng nguy hiểm

Chức năng nhập python từ tập lệnh khác

Xem video này trên YouTube

Kết quả được xuất ra thiết bị đầu cuối

đầu ra

Chào buổi tối tài xế

Tập lệnh thưởng

Làm việc với tệp

from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
9 và các ví dụ ở trên, mã này hợp lý hóa nó thành một tệp ngắn gọn

from greetings import greeting_am
today = datetime.datetime.now()
if (today.hour >= 1 and today.hour < 12):
    from greetings import greeting_am
    print(greeting_am('cdriver'))
8

⚡Thử thách Finxter. Sửa đổi lời chào. tập tin py


Tóm lược

Năm (5) phương pháp nhập tập lệnh Python vào một tệp Python khác sẽ cung cấp cho bạn đủ thông tin để chọn phương pháp tốt nhất cho yêu cầu viết mã của bạn

Các chức năng có thể được nhập bằng Python không?

Bạn có thể xác định các chức năng được sử dụng nhiều nhất trong một mô-đun và nhập nó , thay vì sao chép các định nghĩa của chúng vào các chương trình khác nhau. Một mô-đun có thể được nhập bởi một chương trình khác để sử dụng chức năng của nó. Đây là cách bạn cũng có thể sử dụng thư viện chuẩn Python.

Bạn có thể gọi một hàm từ một tệp khác không?

Có thể gọi các hàm do người dùng định nghĩa từ các tệp khác . Một chức năng có thể được gọi và chạy trong một tệp khác với tệp nơi chức năng được xác định.

Các tập lệnh Python có thể nhập lẫn nhau không?

Bạn có thể có mã mà bạn muốn tự chạy và nhập từ các tập lệnh khác. Trong trường hợp đó, thường đáng để cấu trúc lại mã của bạn để bạn chia phần chung thành một mô-đun thư viện. Mặc dù bạn nên tách biệt các tập lệnh và thư viện, nhưng tất cả các tệp Python đều có thể được thực thi và nhập .