Как вернуть значение из одного скрипта Python в другой? - PullRequest
0 голосов
/ 29 ноября 2018

file1.py

from processing file import sendfunction


class ban(): 
    def returnhello(): 
        x = "hello"
        return x #gives reply a value of "hello replied" in processingfile

print(sendfunction.reply()) #this should fetch the value of reply from processingfile,right?

processingfile.py

from file1 import ban
class sendfunction():
    def reply():
        reply = (ban.returnhello() + " replied")
        return reply

Я не могу получить никаких результатов, любая помощь будет оценена.

Ответы [ 2 ]

0 голосов
/ 29 ноября 2018

Предположим, у нас есть два файла A.py и B.py

A.py

a = 3
print('saying hi in A')

B.py

from A import a
print('The value of a is %s in B' % str(a))

При выполнении B.py вы получите следующий вывод:

└> python B.py
saying hi in A
The value of a is 3 in B
0 голосов
/ 29 ноября 2018

Вам нужно создать object класса ban, прежде чем вызывать его member function следующим образом

from file1 import ban
class sendfunction():
    def reply(self):   # Member methods must have `self` as first argument
        b = ban()      # <------- here creation of object
        reply = (b.returnhello() + " replied")
        return reply

ИЛИ, вы создаете метод returnhello как метод static.Тогда вам не нужно заранее создавать object класса для использования.

class ban(): 
    @staticmethod       # <---- this is how you make static method
    def returnhello():  # Static methods don't require `self` as first arugment
        x = "hello"
        return x #gives reply a value of "hello replied" in processingfile

BTW: Хорошая практика программирования заключается в том, что вы всегда начинаете свое имя класса с Capital Letter.
И имена функций и переменных должны быть в нижнем регистре с подчеркиванием, поэтому returnhello() должно быть return_hello().Как уже упоминалось здесь .

...