2011-10-09 44 views
31

Xin lỗi câu hỏi cơ bản Tôi chắc chắn nhưng tôi không thể hình dung điều này.cách gọi hàm từ một tệp khác?

Nói rằng tôi có chương trình này, các tập tin được gọi là pythonFunction.py:

def function(): 
    return 'hello world' 

if __name__=='__main__': 
    print function() 

Làm thế nào tôi có thể gọi nó trong một chương trình khác? tôi đã cố gắng:

import pythonFunction as pythonFunction 
print pythonFunction.function 

Thay vì 'hello world', tôi nhận được ... Tôi đã làm điều này trong quá khứ bằng cách làm cho các tập tin đầu tiên một lớp, nhưng tôi đã tự hỏi làm thế nào để nhập khẩu các chức năng một cách chính xác? Nếu nó giúp, trong tập tin thực sự của tôi, tôi in một cuốn từ điển

Trả lời

36

Bạn cần in kết quả của gọi hàm, chứ không phải là chức năng riêng của mình:

print pythonFunction.function() 

Thêm vào đó, chứ không phải là import pythonFunction as pythonFunction, bạn có thể bỏ qua as khoản:

import pythonFunction 

Nếu đó là thuận tiện hơn, bạn cũng có thể sử dụng from...import:

from pythonFunction import function 
print function() # no need for pythonFunction. 
+0

Cảm ơn bạn, làm thế nào tôi có thể gọi nếu __name __ == '__ main__': hoặc là cách duy nhất để gọi nó từ chức năng? tốt, nhưng khi tôi làm điều đó tôi nhận được lỗi về các biến không được toàn cầu, tôi có thể thay đổi nó nhưng chỉ tự hỏi – Lostsoul

+2

@Lostsoul: Thật không may, bạn không thể gọi phần 'if __name__ == '__main __'' từ mô-đun khác. Những gì nhiều module sử dụng là có một hàm 'main', và tất cả các phần' if __name__ == '__main __' 'là gọi nó. – icktoofay

+0

okay, cảm ơn vì đã giải thích nó..Cảm ơn sự giúp đỡ của bạn! – Lostsoul

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