Как запустить файл python внутри другого файла python - PullRequest
0 голосов
/ 08 июля 2020

Как мне заставить этот python код, содержащий kivy, запускаться в другом python коде, содержащем kivy, как если бы вы вызывали функцию, чтобы я мог иметь другой сегмент кода. Мне не нужно слишком много кода в конкретном файле python, потому что я буду иметь дело с большим кодом.

import kivy
from kivy.app import App
from kivy.uix.floatlayout import Floatlayout
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.label import Label 


class LandingScreen(FloatLayout):
    def __init__(self, **kwargs):
        super(LandingScreen, self).__init__(**kwargs)

         
        self.btn1=Button(text='button1 ', size_hint=(0.5, 0.5), 
        on_press=self.click_b1))
        self.btn2=Button(text='button2', size_hint=(0.5, 0.5), 
        on_press=self.click_b2))


            
        self.add_widget(self.btn1)
        self.add_widget(self.btn2)

        def click_b1(self, instance):
             
             pass
        def click_b2(self, instance):
             pass
       
class SplashApp(App):
    def build(self):
        return LandingScreen()

if __name__ == '__main__':
    SplashApp().run()

Как мне вызвать этот python файл внутри другого python файла ниже предполагается, что первый файл - a.py, а второй - b.py

import kivy
from kivy.app import App
from kivy.uix.floatlayout import Floatlayout
from kivy.uix.widget import Widget
from kivy.uix.button import Button
from kivy.label import Label 


class LandingScreen2(FloatLayout):
    def __init__(self, **kwargs):
        super(LandingScreen2, self).__init__(**kwargs)

         
        self.btn3=Button(text='button1 ', size_hint=(0.5, 0.5), 
        on_press=self.click_b3))
        self.btn4=Button(text='button2', size_hint=(0.5, 0.5), 
        on_press=self.click_b4))


            
        self.add_widget(self.btn3)
        self.add_widget(self.btn4)

        def click_b3(self, instance):
             
             pass
        def click_b4(self, instance):
             pass
       
class SplashApp(App):
    def build(self):
        return LandingScreen2()

if __name__ == '__main__':
    SplashApp().run()

Ответы [ 2 ]

0 голосов
/ 08 июля 2020

Это называется import. вы можете импортировать второй модуль, скажем, b.py, в свой текущий модуль и вызвать точку входа этого модуля.

в a.py

import b
...
...
#call b.py entry point.
b.SplashApp().run()

вы можете сделать что-то необычное, создание нового процесса и вызов b.py с python через оболочку (но это необычно, и я упоминаю об этом, чтобы вы знали, что вы можете делать все, что захотите, с python)

import subprocess
p= subprocess.Popen("python b.py",shell=True)
p.communicate
0 голосов
/ 08 июля 2020

Чтобы вызвать другой файл, вы обрабатываете его как модуль, вы должны использовать:

#a.py
import b
b.execute()
#b.py
def execute() :
    print("This works!")

Все переменные и функции должны иметь префикс b. для ссылки на модуль "как вы можете видеть в примере

Этот вопрос является возможным дубликатом:

...