Set_up: am un .py fișier pentru fiecare funcție trebuie să utilizați într-un program.
În acest program, am nevoie pentru a apela funcția din fișiere externe.
Am'am incercat:
from file.py import function(a,b)
Dar primesc eroarea:
ImportError: Nu există un modul numit 'de fișier.py'; fișierul nu este un pachet
Cum pot remedia aceasta problema?
Nu e't orice este nevoie pentru a adăuga file.py
în timp ce importul. Scrie doar de fișier funcția de import
, și apoi apela funcția folosind funcția(a, b)`. Motivul pentru acest lucru poate să nu funcționeze, pentru că este "dosar" este unul dintre Python's modulele de bază, așa că am sugerăm să vă modificați numele de fișier.
Rețineți că, dacă're încercarea de a importa funcții de un.py
într-un fișier numit b.py
, va trebui să asigurați-vă că un.py
și b.py
sunt în același director.
Mai întâi de toate, nu aveți nevoie de un .py
.
Dacă aveți un fișier `o.py și în interiorul aveți unele funcții:
def b():
# Something
return 1
def c():
# Something
return 2
Și doriți să le importați în z.py
trebuie să scrie
from a import b, c
Puteți face acest lucru în 2 moduri. Prima este doar de a importa funcția specifică vrei de la file.py. Pentru a face acest lucru folosesc
from file import function
O altă modalitate este de a importa întregul dosar
import file as fl
Apoi, puteți apela orice funcție în interiorul file.py folosind
fl.function(a,b)
Puteți apela funcția de la un alt director, precum și, în cazul în care nu puteți sau nu doresc să aibă funcția în același director lucrați. Puteți face acest lucru în două moduri (poate sunt mai multe alternative, dar acestea sunt cele care au lucrat pentru mine).
Alternativa 1 Temporar schimba directorul de lucru
import os
os.chdir("**Put here the directory where you have the file with your function**")
from file import function
os.chdir("**Put here the directory where you were working**")
Alternativa 2 Adaugă directorul unde ai functia de a sys.calea
import sys
sys.path.append("**Put here the directory where you have the file with your function**")
from file import function
A venit peste aceeași caracteristică, dar am avut de a face de mai jos pentru a face să funcționeze.
Dacă vedeți 'ModuleNotFoundError: Nu există un modul numit', probabil ai nevoie de punct(.) în fața a fișierului de mai jos;
de la .fișier import funtion
Dacă fișierul este în pachet diferite structuri și vrei să suni de la un alt pachet, atunci puteți apela în acest mod:
Las's spune că avea următorul pachet de structură în proiect python:
într - com.meu.func.DifferentFunction` fișier python aveți unele funcții, cum ar fi:
def add(arg1, arg2):
return arg1 + arg2
def sub(arg1, arg2) :
return arg1 - arg2
def mul(arg1, arg2) :
return arg1 * arg2
Și vrei să suni diferite funcții de Example3.py`, apoi felul următor puteți face:
Defini import declarație în Example3.py` - fișier pentru a importa toate funcția
from com.my.func.DifferentFunction import *
sau defini fiecare nume de funcție pe care doriți să le importați
from com.my.func.DifferentFunction import add, sub, mul
Apoi, în Example3.py
puteți apela funcția pentru a executa:
num1 = 20
num2 = 10
print("\n add : ", add(num1,num2))
print("\n sub : ", sub(num1,num2))
print("\n mul : ", mul(num1,num2))
Ieșire:
add : 30
sub : 10
mul : 200
Salvați mai întâi fișierul în .py format (de exemplu, my_example.py
).
Și în cazul în care fișierul au funcții,
def xyz():
--------
--------
def abc():
--------
--------
În funcția de asteptare trebuie doar să tastați de mai jos linii.
nume_fișier: my_example2.py
============================
import my_example.py
a = my_example.xyz()
b = my_example.abc()
============================
Redenumiți modul de 'dosar'.
Apoi, de asemenea, fi sigur că atunci când apelați funcția care:
1)dacă importați întregul modul, vă repet numele modulului când numindu-l:
import module
module.function_name()
sau
import pizza
pizza.pizza_function()
2)sau dacă sunt importatoare de funcții specifice, funcții cu un alias, sau toate funcțiile folosind *, nu't reiterez numele modulului:
from pizza import pizza_function
pizza_function()
sau
from pizza import pizza_function as pf
pf()
sau
from pizza import *
pizza_function()
adăugați un punct(.) în fața unui nume de fișier dacă doriți să importați acest fișier, care este în același director în care se execută codul.
De exemplu, am'm execută un fișier numit-o.py si vreau sa import o metodă numită addFun care este scris în b.py, și b.py este în același director
de la .b import addFun
Să presupunem că fișierul pe care doriți pentru a apela este anotherfile.py și metoda doriți să o apelați este metoda1, apoi prima de import din fișier și apoi metoda
from anotherfile import method1
dacă metoda1 este parte dintr-o clasă, să class fi class1, apoi
from anotherfile import class1
apoi a crea un obiect de class1, să presupunem că numele obiectului este ob1, apoi
ob1 = class1()
ob1.method1()