2012-09-18 35 views
22

Tôi đã đọc các bài viết sau:Gọi một hàm trong một file riêng biệt trong Python

Importing Module or From Module Import

From file.py import *

Và tôi đã chỉ tự hỏi làm thế nào để biết khi nào để phá vỡ lên mã của tôi vào nhiều tệp so với việc đặt nhiều hàm trong một tệp? Vấn đề cụ thể của tôi ở đây là tôi có một hàm với 100 dòng mà tôi muốn gọi trong vòng lặp của một hàm khác. Ngoài ra, khi nào các tập lệnh được thực thi? Khi bạn nhập chúng, hoặc khi bạn gọi cho họ?

Lưu ý: Câu trả lời bên dưới đã giải quyết được hoàn toàn sự cố. Cảm ơn bạn!

+0

Tại sao lưu ý lại? Theo http://stackoverflow.com/faq, đây là một "vấn đề có thể thực hiện, có thể trả lời duy nhất cho nghề lập trình" và "vấn đề lập trình cụ thể". Có lý do gì không? – user1590499

+0

Từ http://stackoverflow.com/questions/how-to-ask: "Làm bài tập ở nhà của bạn. Bạn đã tìm kiếm kỹ lưỡng câu trả lời trước khi hỏi câu hỏi của bạn chưa?" Nhập khẩu là một khía cạnh cơ bản của Python, được đề cập trong hướng dẫn và các nơi khác. Chúng tôi không * ở đây để đọc hướng dẫn cho bạn. –

+1

Upvoting câu hỏi như tôi đã quyết định rằng Kev không phải là một người điều hành thực sự – Stumbler

Trả lời

27

Giả sử rằng các chức năng useful_function là trong một tập tin foreign_code.py trong cùng thư mục với tập tin chương trình của bạn, chỉ cần đặt

from foreign_code import useful_function 

ở đầu chương trình của bạn.

+2

Điều gì về trường hợp khi chương trình đang sử dụng hàm và chương trình xác định hàm nằm trong các thư mục khác nhau. – Trojosh

3

Bạn cần phải import tệp khác (hoặc chỉ tên hàm từ tệp đó). Nhìn vào tutorial on modules để tham khảo. Đừng quên rằng các tập lệnh được thực hiện khi bạn nhập chúng.

+0

Cảm ơn sự giúp đỡ! – user1590499

5

Tùy thuộc vào bản chất của tệp khác, việc nhập có thể là giải pháp tốt.

from otherfile import big_function 

for something something: 
    big_function() 
+1

Sẽ tốt hơn nếu sử dụng 'frmo otherfile import big_function', để tránh gọi' otherfile.big_function' nhiều lần (hãy nhớ rằng, mỗi '.' là một lời gọi hàm trong Python). –

+0

@PierreGM Điểm tốt. Tôi đã cập nhật câu trả lời của mình cho phù hợp. – skunkfrukt

+0

@NamidaAneskans, cảm ơn sự giúp đỡ! – user1590499

Các vấn đề liên quan