Kezdőoldal » Számítástechnika » Programozás » Hogyan lehet egy python filet...

Hogyan lehet egy python filet egy másikban futtatni?

Figyelt kérdés

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



2015. szept. 13. 20:36
 1/9 anonim ***** válasza:
0%
os.system("script2.py 1")
2015. szept. 13. 20:40
Hasznos számodra ez a válasz?
 2/9 anonim ***** válasza:
Régen nem pythonoztam, de egy execfile(path) mintha lett volna.
2015. szept. 13. 20:47
Hasznos számodra ez a válasz?
 3/9 anonim ***** válasza:
70%
Az import nem erre valo?
2015. szept. 13. 20:52
Hasznos számodra ez a válasz?
 4/9 anonim ***** válasza:

#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).

2015. szept. 13. 21:18
Hasznos számodra ez a válasz?
 5/9 |Orfeusz| ***** válasza:

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()

2015. szept. 13. 21:58
Hasznos számodra ez a válasz?
 6/9 |Orfeusz| ***** válasza:
Az indenteket kiszedi a gyk... Remélem azért el tudod olvasni.
2015. szept. 13. 21:59
Hasznos számodra ez a válasz?
 7/9 anonim ***** válasza:
67%

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.

2015. szept. 13. 22:40
Hasznos számodra ez a válasz?
 8/9 A kérdező kommentje:

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?

2015. szept. 14. 15:55
 9/9 A kérdező kommentje:
Megvan! Azért nem működött mert a matek definiálását a gomb elé kellett volna tennem! Köszönöm a választ, sokat segítettél!
2015. szept. 14. 16:10

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!