Я собираюсь прикрепить два блока кода, первый - это основной код, который запускается, второй - файл 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')