为什么代码在创建类的对象时显示SyntaxError:invalid语法?

2024-10-01 19:31:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我创建了一个名为Boy的类,并尝试创建一个对象b1(b1=Boy()),但这一行显示了错误

完整代码如下:

class Boy:
    name='JOHN'
    age='21'
    def say_hello(self):
        print('Hello! My name is %s and I am %s years old' % (self.name,self.age)
b1=Boy()
b1.say_hello()

错误信息如下:

runfile('C:/Users/kesha/.spyder-py3/edugrad.py', 
wdir='C:/Users/kesha/.spyder-py3')
Traceback (most recent call last):

File "C:\ProgramData\Anaconda3\lib\site- 
packages\IPython\core\interactiveshell.py", line 3325, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)

File "<ipython-input-1-d5ee685f3657>", line 1, in <module>
runfile('C:/Users/kesha/.spyder-py3/edugrad.py', 
wdir='C:/Users/kesha/.spyder-py3')

File "C:\ProgramData\Anaconda3\lib\site- 
packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
execfile(filename, namespace)

File "C:\ProgramData\Anaconda3\lib\site- 
packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
exec(compile(f.read(), filename, 'exec'), namespace)

File "C:/Users/kesha/.spyder-py3/edugrad.py", line 13
b1=Boy()
 ^
SyntaxError: invalid syntax

我尝试在python控制台中使用Jupyter笔记本运行相同的代码,结果运行得很好。

预期输出:您好!我叫约翰,今年21岁


Tags: nameinpyselflinepy3usersb1
1条回答
网友
1楼 · 发布于 2024-10-01 19:31:22

只是几个虫子。首先,您忘记了print语句的最后一个括号。这实际上是你犯错误的原因。有时像这样的错误很难追踪。忘记右括号/方括号/大括号是很常见的,这会导致下一行报告错误(认为这是前一行的一部分)

第二,为了让类按您想要的方式工作,使用初始化方法将变量与self关联起来更符合python(也更合适)

最后,随着python2.7将于2020年寿终正寝,建议使用Python的format命令格式化字符串

class Boy:
    def __init__(self):
        self.name='JOHN'
        self.age='21'

    def say_hello(self):
        #print('Hello! My name is %s and I am %s years old' % (self.name,self.age))
        print('Hello! My name is {} and I am {} years old'.format(self.name,self.age))
b1 = Boy()
b1.say_hello()

相关问题 更多 >

    热门问题