Python3绑定方法

时间:2016-01-17 15:49:19

标签: python python-3.x

您好我有一个python文件,其中包含类pet和一个文件包含类人员和主文件 代码是这样的: 宠物代码:

class Pet:
def __init__(self, name, age, sound, type):
    self.name = name
    self.age = age
    self. sound = sound
    self. type = type

class Dog(Pet):
def __init__(self, name, age):
    super().__init__(name, age, "How How", "Dog")


class Cat(Pet):
def __init__(self, name, age):
    super().__init__(name, age, "Mewo", "Cat")

这是人民档案:

    import Pets
class Person:
def __init__(self, gender, name, age):
    self.gender = gender
    self.name = name
    self.age = age
    self.pets = []

def addPet(self, pet):
    if isinstance(pet, Pets.Pet):
        self.pets.append(pet)
    else:
        print("This is not a pet pls try again.")

def printPets():
    print("He has:")
    for pet in self.pets:
        print("A: " + pet.type+ " Named: " + pet.name)

这是主文件:

from Person import Person
import Pets
def Main():
p1 = Person("Male", "Bob", 18)
p1.addPet(Pets.Cat("Mitzi", 2))
p1.addPet(Pets.Dog("Rexi", 5))
print(p1.printPets)

if __name__ == "__main__":
    Main()

我得到的输出是:

<bound method Person.printPets of <Person.Person object at 0x7f413e3604e0>>

这是什么以及如何解决? 感谢名单。

2 个答案:

答案 0 :(得分:4)

您需要的是print(p1.printPets())

您需要调用该方法。

另外你正在做的是打印方法,Python给你的是方法类型(绑定),它所属的实例类型和实例的地址。

答案 1 :(得分:1)

您只需要在()内包含print(),如下所示:

print(s1.avg())