Python3 绑定方法


嗨,我有一个python文件,其中包含类

宠物和一个文件,其中包含类人和主文件代码是这样的:宠物守则:

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>>

这是什么,我该如何解决?谢谢。

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

您需要调用该方法。

否则,您正在做的是打印方法,而Python为您提供的是方法类型(绑定),它所属的实例类型和实例的地址。

你只需要像这样在print()中包含()

print(s1.avg())

最新更新