ฉันจะนำเข้าตัวแปรจากไฟล์หนึ่งไปยังอีกไฟล์ได้อย่างไร
ตัวอย่าง: file1
มีตัวแปรx1
และx2
วิธีส่งผ่านไปยังfile2
อะไร
ฉันจะนำเข้าทั้งหมดของตัวแปรจากที่หนึ่งไปยังอีก?
ฉันจะนำเข้าตัวแปรจากไฟล์หนึ่งไปยังอีกไฟล์ได้อย่างไร
ตัวอย่าง: file1
มีตัวแปรx1
และx2
วิธีส่งผ่านไปยังfile2
อะไร
ฉันจะนำเข้าทั้งหมดของตัวแปรจากที่หนึ่งไปยังอีก?
คำตอบ:
from file1 import *
จะนำเข้าวัตถุและวิธีการทั้งหมดใน file1
ImportError: No module named file1
นำเข้าfile1
ภายในfile2
:
ในการนำเข้าตัวแปรทั้งหมดจาก file1 โดยไม่ทำให้ namespace ของ file2 ท่วมให้ใช้:
import file1
#now use file1.x1, file2.x2, ... to access those variables
วิธีอิมพอร์ตตัวแปรทั้งหมดจาก file1 ไปยังเนมสเปซของ file2 (ไม่แนะนำ):
from file1 import *
#now use x1, x2..
จากเอกสาร :
ในขณะที่มันถูกต้องที่จะใช้
from module import *
ในระดับโมดูลมักจะเป็นความคิดที่ดี สำหรับสิ่งนี้สูญเสียคุณสมบัติที่สำคัญของ Python อย่างอื่นคุณสามารถทราบได้ว่าชื่อระดับบนสุดแต่ละชื่อถูกกำหนดโดยฟังก์ชัน "ค้นหา" อย่างง่ายในตัวแก้ไขรายการโปรดของคุณ นอกจากนี้คุณยังเปิดตัวเองให้มีปัญหาในอนาคตหากโมดูลบางอย่างเพิ่มฟังก์ชั่นหรือคลาสเพิ่มเติม
import file1
แล้ว
file1.varX
กับแต่ละไฟล์
ดีที่สุดที่จะนำเข้าx1และx2อย่างชัดเจน:
from file1 import x1, x2
นี้ช่วยให้คุณหลีกเลี่ยงความขัดแย้ง namespace ไม่จำเป็นกับตัวแปรและฟังก์ชั่นจากขณะที่ทำงานในfile1
file2
แต่ถ้าคุณต้องการคุณสามารถนำเข้าตัวแปรทั้งหมด :
from file1 import *
จริงๆแล้วสิ่งนี้ไม่เหมือนกับการนำเข้าตัวแปรด้วย:
from file1 import x1
print(x1)
และ
import file1
print(file1.x1)
Altough ที่ import time x1 และ file1.x1 มีค่าเท่ากัน แต่ไม่เหมือนกัน ตัวอย่างเช่นเรียกใช้ฟังก์ชันใน file1 ที่แก้ไข x1 แล้วลองพิมพ์ตัวแปรจากไฟล์หลัก: คุณจะไม่เห็นค่าที่แก้ไข
การตอบสนองของมาร์คถูกต้อง ที่จริงแล้วคุณสามารถพิมพ์ที่อยู่หน่วยความจำสำหรับตัวแปรprint(hex(id(libvar))
และคุณสามารถดูที่อยู่ที่แตกต่างกัน
# mylib.py
libvar = None
def lib_method():
global libvar
print(hex(id(libvar)))
# myapp.py
from mylib import libvar, lib_method
import mylib
lib_method()
print(hex(id(libvar)))
print(hex(id(mylib.libvar)))
script1.py
title="Hello world"
script2.pyเป็นที่ที่เราใช้ตัวแปร script1
วิธีที่ 1:
import script1
print(script1.title)
วิธีที่ 2:
from script1 import title
print(title)
ในPython
คุณสามารถเข้าถึงเนื้อหาของไฟล์อื่น ๆ เช่นราวกับว่าพวกเขา
เป็นห้องสมุดบางชนิดเมื่อเทียบกับภาษาอื่น ๆ เช่นจาวาหรือภาษาพื้นฐานใด ๆ Oop นี่มันเจ๋งจริงๆ
ทำให้การเข้าถึงเนื้อหาของไฟล์หรือนำเข้าเพื่อดำเนินการหรือทำอะไรกับมัน; และนั่นคือเหตุผลหลักว่าทำไมPython
ภาษาจึงเป็นที่นิยมอย่างสูงสำหรับวิทยาศาสตร์ข้อมูลและการเรียนรู้ของเครื่องเป็นต้น
และนี่คือภาพของ project structure
ฉันเข้าถึงตัวแปรจาก.env file
ตำแหน่งที่API links
และปุ่มความลับอยู่ที่ไหน
โครงสร้างทั่วไป:
from <File-Name> import *
first.py:
a=5
second.py:
import first
print(first.a)
ผลลัพธ์จะเป็น 5