我是Python中面向对象的新手,我对如何使用面向对象的方法感到有点困惑。
class Beta(object):
def __init__(self,message='defualt msg'):
self.message = message
def foo(self):
return self.message
def main():
beta1 = Beta()
messege = beta1.foo()
if __name__ == '__main__':
main()以下代码返回以下错误NameError: name 'Beta' is not defined,但以下代码工作正常:
from time import sleep
def foo(data):
print("Beginning data processing...")
modified_data = data + " that has been modified"
sleep(3)
print("Data processing finished.")
return modified_data
def main():
data = "My data read from the Web"
print(data)
modified_data = foo(data)
print(modified_data)
if __name__ == "__main__":
main()唯一的区别是类可以在main中创建一个对象,或者直接从main调用函数,或者我们需要显式地在类之外创建一个对象。
在Java或C#中,我们可以在任何类函数中使用类名来调用另一个函数,而在Python中,这是一个生成相同错误的脚本。
class Test():
def foo() :
print('Hello ')
def bar():
foo()
print('world')
def run():
test = Test()
test.bar()
run()发布于 2022-07-25 12:41:22
正确的缩进是
class Beta(object):
def __init__(self,message='defualt msg'):
self.message = message
def foo(self):
return self.message
def main():
beta1 = Beta()
messege = beta1.foo()
if __name__ == '__main__':
main()函数main使用Beta;它不应该是Beta的一部分。同样,if语句确保main只在文件作为脚本使用时才被执行,而不是在导入文件时执行,因此也同样不是类Beta的一部分。
https://stackoverflow.com/questions/73109322
复制相似问题