《python编程从入门到实践》-第九章-类

138 阅读1分钟
问题:第9章类-9.1创建使用类--9.1.2根据类创建实例-2.调用方法

在该章节中,这一部分的代码如下,稍微不注意可能会容易出现错误

出现错误的代码,报错结果:

unsupported operand type(s) for +: 'builtin_function_or_method' and 'str'

title的括号没有加,会导致报错

class Dog():
    def __init__(self, name, age):
        # 初始化属性name和age
        self.name = name
        self.age = age

    def sit(self):
        # 模拟小狗被命令时蹲下
        print(self.name.title + " is now sitting!")

    def roll_over(self):
        # 模拟小狗被命令时打滚
        print(str(self.name).title + " rolled over!")

my_dog = Dog('iverson', 6)
my_dog.sit()
my_dog.roll_over()

正确代码

class Dog():
    def __init__(self, name, age):
        # 初始化属性name和age
        self.name = name
        self.age = age

    def sit(self):
        # 模拟小狗被命令时蹲下
        print(self.name.title() + " is now sitting!")

    def roll_over(self):
        # 模拟小狗被命令时打滚
        print(str(self.name).title() + " rolled over!")

my_dog = Dog('iverson', 6)
my_dog.sit()
my_dog.roll_over()