Пытаясь поэкспериментировать с классами и методами, а также с тем, как передавать переменные между ними, я написал несколько сценариев, чтобы попытаться понять механику.При этом я столкнулся с проблемой, когда одна из моих функций не определена:
NameError: name 'exclaim' is not defined
Я думал, что использование self может разрешиться, но я просто возвращаюсь к
NameError: name 'self' is not defined
Я сталкивался с несколькими источниками, которые заставили меня взглянуть на уровни отступов методов и вызывать через HelloWorld.exclaim (), что привело к той же проблеме.
пожалуйста, посмотрите мой код: (script1)
import datasource
class HelloWorld:
def exclaim():
number1 = input("enter a number")
datasource.Class2.method3.impvariable1 = number1
def main():
HelloWorld.exclaim()
print(datasource.Class1.method1.variable1)
print(datasource.Class2.method2.variable2)
print(datasource.Class2.method3.variable3)
if __name__ == '__main__':
main()
Script2:
#datasource.py
class Class1:
def method1():
variable1 = "Hello "
class Class2:
def method2():
variable2 = "World"
def method3():
impvariable1 = 0
variable3 = "!"
for x in range(impvariable1):
variable3 = variable3 + "!"
Я также пытался (количество сотен других итераций)
#datahandler.py
import datasource
class HelloWorld:
def exclaim(self):
number1 = input("enter a number")
datasource.Class2.method3.impvariable1 = number1
def main(self):
HelloWorld.exclaim(self)
print(datasource.Class1.method1.variable1)
print(datasource.Class2.method2.variable2)
print(datasource.Class2.method3.variable3)
if __name__ == '__main__':
main(self)
, который производит;
NameError: name 'self' is not defined