Как передать переменные из файла A в функцию в классе в файле B - PullRequest
0 голосов
/ 11 июня 2018

Я читал много статей и сайтов, касающихся классов и случаев.Но никто не смог дать мне четкого ответа на эту проблему.Как передать переменную из одного файла в функцию, которая вложена в класс, в другой файл?

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


При выполнении кода ниже я получаю следующую ошибку: TypeError: PrintData() missing 1 required positional argument: 'DOB'

def DisplayStudent(self):
    txtStudent = self.txtStudent.get()
    DisplayResults(txtStudent)

def PrintData(self, First, Last, Year, Tutor, DOB):
    print(First, Last, Year, Tutor, DOB)

    self.resultStudentFName.config(text = First)

И при выполнении кода ниже этого я получаю другую ошибку: NameError: name 'self' is not defined

def DisplayStudent(self):
    txtStudent = self.txtStudent.get()
    DisplayResults(txtStudent)

def PrintData(First, Last, Year, Tutor, DOB):
    print(First, Last, Year, Tutor, DOB)

    self.resultStudentFName.config(text = First)

Примечание: Эта строка кода используется в файле базы данныхтот, у которого нет класса.Он не был изменен ни для одного из следующих двух разделов кода выше.

from Main import MainPage as MP
MP.PrintData(First, Last, Year, Tutor, DOB)

И когда я передаю self в качестве аргумента в строку PrintData, он говорит: NameError: name 'self' is not defined.


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

Большое спасибо, DavalliTV

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Я выяснил, в чем проблема!Я не проходил через self.Такая маленькая проблема / ошибка может вызвать столько разочарований!Для тех, кто будет читать этот пост в будущем, обязательно внимательно прочитайте, что говорит ошибка, и убедитесь, что при использовании классов self пропускается.Спасибо Эндрю и PydPiper за ваши усилия, возможно, я мог бы лучше ответить на этот вопрос, но я благодарен вам, ребята, за дело!

0 голосов
/ 11 июня 2018

Похоже, ваш верхний снипит работает, за исключением того, что вам нужно только инициализировать класс, когда вы его извлекаете: from Main import MainPage as MP newMP = MP() # or pass in __init__ args as needed newMP.PrintData(First, Last, Year, Tutor, DOB) # assuming these args have been previously defined Ваш нижний снипит не работает, потому что это статический метод без "self" в списке аргументов (поэтому вы не можете расширять себя в методе)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...