объявление класса в классе exe c inits, но функции не работают - PullRequest
0 голосов
/ 03 февраля 2020

Я собираюсь прикрепить два блока кода, первый - это основной код, который запускается, второй - файл testClass, содержащий образец класса для тестирования. Чтобы понять, что происходит, возможно, проще всего запустить код самостоятельно. Когда я вызываю s C .cls.print2 (), он говорит, что параметр self не выполнен. Обычно при работе с классами self (в этом случае) будет s C .cls, и вам не нужно будет передавать его в качестве параметра. Любой совет очень ценится, почему это происходит, я думаю, что это как-то связано с областью действия exe c, но даже если я запускаю эту функцию в exe c, она выдает ту же ошибку, и я не могу понять обойти это. Если вам нужна дополнительная информация, просто спросите!

import testClass

def main():
    inst = testClass.myClass()
    classInfo = str(type(inst)).split()[1].split("'")[1].split('.')
    print(classInfo)
    class StoreClass:
        def __init__(self):
            pass
    exec('from {} import {}'.format(classInfo[0], classInfo[1]))
    sC = StoreClass()
    exec('sC.cls = {}'.format(classInfo[1]))
    print(sC.cls)
    sC.cls.print2()
if __name__ == '__main__':
    main()
class myClass:
    def printSomething(self):
        print('hello')

    def print2(self):
        print('hi')
...