调用方法 returns <__main__ XYZ object at 0x01234567>
Calling a method returns <__main__ XYZ object at 0x01234567>
我正在学习基于网络的 python 教程,下面的代码在 class 提供的网络环境中执行。
但是,当我尝试 运行 在 Anaconda 中本地代码时,我得到以下结果:
I'm Fido. I feel <bound method Pet.mood of <__main__.Pet object at 0x00000223BD4B74E0>>.
我看到了如何使用 class
和 superclass
可以使我的代码更好,并试图弄清楚如何让基于 Web 的示例在本地工作。
代码如下:
class Pet:
def __init__(self, name = 'Kitty'):
self.name = name
def mood(self):
#code simplified for SO example
return 'happy'
def __str__(self):
state = " I'm {}. I feel {}.".format(self.name, self.mood)
return state
class Cat(Pet):
def chasing_rats(self):
return "I'll get you!"
p1 = Pet("Fido")
print(p1)
self.mood
是classPet
的一个实例方法。因此,您需要通过将括号包含为 self.mood()
来将其作为方法调用
class Pet:
def __init__(self, name = 'Kitty'):
self.name = name
def mood(self):
#code simplified for SO example
return 'happy'
def __str__(self):
state = " I'm {}. I feel {}.".format(self.name, self.mood())#updated this line
return state
class Cat(Pet):
def chasing_rats(self):
return "I'll get you!"
p1 = Pet("Fido")
print(p1)
输出
I'm Fido. I feel happy.
我正在学习基于网络的 python 教程,下面的代码在 class 提供的网络环境中执行。
但是,当我尝试 运行 在 Anaconda 中本地代码时,我得到以下结果:
I'm Fido. I feel <bound method Pet.mood of <__main__.Pet object at 0x00000223BD4B74E0>>.
我看到了如何使用 class
和 superclass
可以使我的代码更好,并试图弄清楚如何让基于 Web 的示例在本地工作。
代码如下:
class Pet:
def __init__(self, name = 'Kitty'):
self.name = name
def mood(self):
#code simplified for SO example
return 'happy'
def __str__(self):
state = " I'm {}. I feel {}.".format(self.name, self.mood)
return state
class Cat(Pet):
def chasing_rats(self):
return "I'll get you!"
p1 = Pet("Fido")
print(p1)
self.mood
是classPet
的一个实例方法。因此,您需要通过将括号包含为 self.mood()
class Pet:
def __init__(self, name = 'Kitty'):
self.name = name
def mood(self):
#code simplified for SO example
return 'happy'
def __str__(self):
state = " I'm {}. I feel {}.".format(self.name, self.mood())#updated this line
return state
class Cat(Pet):
def chasing_rats(self):
return "I'll get you!"
p1 = Pet("Fido")
print(p1)
输出
I'm Fido. I feel happy.