Hogyan lehet egy python filet egy másikban futtatni?
Csináltam egy olyan programot python 3.3.2-ben ami tud szorozni, osztatani, összeadni, kivonni, gyököt vonni. Ennek a neve Matek.py. Csinálok egy másikat is de abban nem szeretném még egyszer leírni ugyan azt amit a Matek.py-ban már egyszer megcsináltam. Hogyan tudnám a Matek.py-t, teljes egésszében futtatni a másik python fileban?
Így néz ki az amit éppen most csinálok:
from tkinter import *
from tkinter import ttk
root = Tk()
elso = Frame(root)
elso.pack()
b1 = Button(elso,text="Matek", fg="black", command=matek)
b1.pack()
elso.pack()
def matek():
#Itt kellene futtatni a Matek.py-t
#3
Legjobb tudomásom szerint ha fájlt szeretne futtatni(a kérdésben meg ez áll), akkor az execfile() a befutó, az import ide nem jó(de javítsatok ki, ha tévednék, nagyon régen nem pythonoztam, és akkor sem ismertem túl mélyen).
Csinálj egy classt a Matek.py-ből.
class Matek():
def __init__(self):
# tartalom
# ....
aztán a főprogramba importáld az osztályt
impost os
os.chdir("a fájlod elérési útja")
from Matek.py import Matek
# függvények, stb
# főprogram...
def matek():
matekablak = Matek()
Atya ég, ennyi irreleváns választ rég láttam.
Akkor tegyük tisztába az egészet annak tükrében amit meg szeretnél megvalósítani.
Minden python fájl egyben python modul is. Ha az egy ilyen modult fel akarsz használni valahol akkor azt az import utasítással tudod betölteni (importálni). Ilyet biztosan csináltál már, a bemásolt kódod is így kezdődik: from tkinter import *
Tehát nagyon egyszerűen, ahol szükséged van a matek.py függvényeire (vagy konstansaira, vagy bármire) ott így beimportálod:
import matek
Ez után, ha van egy osszeadas nevű függvényed a matek.py-ban, akkor így tudod meghívni:
matek.osszeadas(1,1)
Fontos, hogy a matek.py elérhető legyen a python számára. Legegyszerűbb ha oda rakod progra oddal egy mappána.
Beírtam amit mondtál (import Matek.py), de ezt az error üzenetet kaptam
"b1 = Button(elso,text="Matek", fg="black", command=matek)
NameError: name 'matek' is not defined"
De kipróbáltam python shellben ott viszont működött. Mit csináljak?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!