Có nhiều cách để nhập một tệp Python, tất cả đều có ưu và nhược điểm của họ.
Đừng vội vàng chọn chiến lược nhập khẩu đầu tiên phù hợp với bạn nếu không bạn sẽ phải viết lại cơ sở mã sau khi bạn thấy nó không đáp ứng nhu cầu của bạn.
Tôi sẽ bắt đầu giải thích ví dụ dễ nhất số 1, sau đó tôi sẽ tiến tới ví dụ chuyên nghiệp và mạnh mẽ nhất #7
Ví dụ 1, nhập mô -đun Python với trình thông dịch Python:
Đặt cái này vào /home/el/foo/fox.py:
def what_does_the_fox_say[]: print["vixens cry"]
Tham gia phiên dịch Python:
el@apollo:/home/el/foo$ python Python 2.7.3 [default, Sep 26 2013, 20:03:06] >>> import fox >>> fox.what_does_the_fox_say[] vixens cry >>>
Bạn đã nhập Fox thông qua phiên dịch viên Python, gọi chức năng Python
0 từ bên trong Fox.py.def moobar[]: print["hi"]
Ví dụ 2, sử dụng
1 hoặc [def moobar[]:
print["hi"]
2 trong Python 3] trong tập lệnh để thực thi tệp Python khác tại chỗ:def moobar[]:
print["hi"]
Đặt cái này vào /home/el/foo2/mylib.py:
def moobar[]: print["hi"]
Đặt cái này vào /home/el/foo2/main.py:
execfile["/home/el/foo2/mylib.py"] moobar[]
Chạy tệp:
el@apollo:/home/el/foo$ python main.py hi
Hàm Moobar được nhập từ mylib.py và được cung cấp trong main.py
Ví dụ 3, sử dụng từ ... Nhập ... Chức năng:
Đặt cái này vào /home/el/foo3/chekov.py:
def question[]: print "where are the nuclear wessels?"
Đặt cái này vào /home/el/foo3/main.py:
from chekov import question question[]
Chạy nó như thế này:
el@apollo:/home/el/foo3$ python main.py where are the nuclear wessels?
Nếu bạn xác định các chức năng khác trong Chekov.py, chúng sẽ không có sẵn trừ khi bạn
3def moobar[]: print["hi"]
Ví dụ 4, nhập RIAA.py nếu nó ở một vị trí tệp khác từ nơi nó được nhập
Đặt cái này vào /home/el/foo4/stuff/riaa.py:
def watchout[]: print "computers are transforming into a noose and a yoke for humans"
Đặt cái này vào /home/el/foo4/main.py:
import sys import os sys.path.append[os.path.abspath["/home/el/foo4/stuff"]] from riaa import * watchout[]
Chạy nó:
0el@apollo:/home/el/foo$ python Python 2.7.3 [default, Sep 26 2013, 20:03:06] >>> import fox >>> fox.what_does_the_fox_say[] vixens cry >>>
Điều đó nhập mọi thứ trong tệp nước ngoài từ một thư mục khác.
Ví dụ 5, sử dụng
4def moobar[]:
print["hi"]
el@apollo:/home/el/foo$ python
Python 2.7.3 [default, Sep 26 2013, 20:03:06]
>>> import fox
>>> fox.what_does_the_fox_say[]
vixens cry
>>>
1Ví dụ 6, hãy nhập tệp của bạn thông qua cõng The Python Startuphook:
Cập nhật: Ví dụ này được sử dụng để hoạt động cho cả Python2 và 3, nhưng bây giờ chỉ hoạt động cho Python2. Python3 đã loại bỏ bộ tính năng startuphook của người dùng này vì nó đã bị các nhà văn thư viện Python kỹ năng thấp lạm dụng, sử dụng nó để đưa mã của họ vào không gian tên toàn cầu, trước tất cả các chương trình do người dùng xác định. Nếu bạn muốn điều này hoạt động cho Python3, bạn sẽ phải sáng tạo hơn. Nếu tôi nói với bạn cách thực hiện, các nhà phát triển Python cũng sẽ vô hiệu hóa tính năng đó được đặt, vì vậy bạn là một mình. This example used to work for both python2 and 3, but now only works for python2. python3 got rid of this user startuphook feature set because it was abused by low-skill python library writers, using it to impolitely inject their code into the global namespace, before all user-defined programs. If you want this to work for python3, you'll have to get more creative. If I tell you how to do it, python developers will disable that feature set as well, so you're on your own.
Xem: //docs.python.org/2/l Library/user.html
Đặt mã này vào thư mục nhà của bạn trong
def moobar[]:
print["hi"]
5el@apollo:/home/el/foo$ python
Python 2.7.3 [default, Sep 26 2013, 20:03:06]
>>> import fox
>>> fox.what_does_the_fox_say[]
vixens cry
>>>
2Đặt mã này vào Main.py của bạn [có thể ở bất cứ đâu]:
el@apollo:/home/el/foo$ python
Python 2.7.3 [default, Sep 26 2013, 20:03:06]
>>> import fox
>>> fox.what_does_the_fox_say[]
vixens cry
>>>
3Chạy nó, bạn sẽ nhận được điều này:
el@apollo:/home/el/foo$ python
Python 2.7.3 [default, Sep 26 2013, 20:03:06]
>>> import fox
>>> fox.what_does_the_fox_say[]
vixens cry
>>>
4Nếu bạn gặp lỗi ở đây:
def moobar[]:
print["hi"]
6 thì điều đó có nghĩa là bạn đang sử dụng python3, startuphooks bị vô hiệu hóa ở đó theo mặc định.Tín dụng cho jist này đi tới: //github.com/docwhat/homedir-examples/blob/master/python-commandline/.pythonrc.py
Ví dụ 7, mạnh nhất: Nhập các tệp trong Python với lệnh nhập trần:
- Tạo một thư mục mới
7def moobar[]: print["hi"]
- Tạo một thư mục mới
8def moobar[]: print["hi"]
Tạo một tệp trống có tên
9 trong herp:def moobar[]: print["hi"]
5el@apollo:/home/el/foo$ python Python 2.7.3 [default, Sep 26 2013, 20:03:06] >>> import fox >>> fox.what_does_the_fox_say[] vixens cry >>>
Tạo một thư mục mới/home/el/foo5/herp/derp
Trong DERP, hãy tạo một tệp
9 khác:def moobar[]: print["hi"]
6el@apollo:/home/el/foo$ python Python 2.7.3 [default, Sep 26 2013, 20:03:06] >>> import fox >>> fox.what_does_the_fox_say[] vixens cry >>>
Under/home/el/foo5/herp/derp tạo một tệp mới có tên
1 Đặt cái này vào đó:execfile["/home/el/foo2/mylib.py"] moobar[]
7el@apollo:/home/el/foo$ python Python 2.7.3 [default, Sep 26 2013, 20:03:06] >>> import fox >>> fox.what_does_the_fox_say[] vixens cry >>>
Khoảnh khắc của sự thật, tạo tập tin mới
2, đặt nó vào đó;execfile["/home/el/foo2/mylib.py"] moobar[]
8el@apollo:/home/el/foo$ python Python 2.7.3 [default, Sep 26 2013, 20:03:06] >>> import fox >>> fox.what_does_the_fox_say[] vixens cry >>>
Chạy nó:
9el@apollo:/home/el/foo$ python Python 2.7.3 [default, Sep 26 2013, 20:03:06] >>> import fox >>> fox.what_does_the_fox_say[] vixens cry >>>
Điều đó nhập mọi thứ trong tệp nước ngoài từ một thư mục khác.
Ví dụ 5, sử dụng
def moobar[]:
print["hi"]
4