Почему python сначала распечатывает метод класса? - PullRequest
0 голосов
/ 01 октября 2019

Я написал пример кода, как показано ниже. Интересно, почему метод печатается первым, даже если он находится в нижних строках ...

class Dog():
    species = "Mammals"
    legs = 4
    def __init__ (self,breed, name, spots, height):
        self.breed = breed
        self.name = name
        self.spots = spots
        self.height = height

    def bark(self,number):
        for i in range(number):
            print("My name is {}".format(self.name))

MyDog = Dog(breed = "Huskie", name = "MyDog", spots = True, height = "Tall")

print(MyDog.species,MyDog.legs,MyDog.breed,MyDog.name,MyDog.spots,MyDog.bark(3),MyDog.height,sep="\n")

1 Ответ

3 голосов
/ 01 октября 2019

print - это просто функция, как и любая другая, и Python оценивает все аргументы функции перед вызовом этой функции. В противном случае функция не будет знать значения своих аргументов и не будет знать, что делать. Таким образом, MyDog.bark(3) необходимо оценить, прежде чем можно будет позвонить print(..., MyDog.bark(3), ...).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...