Python中关于类,对象的问题

代码是这样的:

class Person(object):
    
    def __init__(self,name):
        self.name = name
        print(self.name)
        self.pet = None

class Employee(Person):
    def __init__(self,name):
        super(Employee,self).__init__(name)
        
class Fish(object):
    print("I am fish")
    pass

class Salmon(Fish):
    print("I am salmon")
    pass

mary = Person("Mary")

mary.pet = "satan"
print(mary.pet)

frank = Employee("Frank")
frank.pet = "rover"
print(frank.pet)

flipper = Fish()

crouse = Salmon()


其运行结果是:

I am fish
I am salmon
Mary
satan
Frank
rover

就有疑问了,明明是flipper = Fish()和crouse = Salmon()写在了代码的最后,但是为什么运行结果显示的却是"I am fish"和"I am salmon"到前面来了呢?

因为程序在运行的时候会加载所有的类,加载类的时候就会打印: print("I am fish")
实例化类的时候是走__init__方法,这是区别

因为在实例化mary = Person("Mary")时就执行了Fish和Fish类的语句

img

你这个
class Fish(object):
print("I am fish")
pass

class Salmon(Fish):
print("I am salmon")
pass

你是直接写在类下面的呀
它在编译的时候会直接执行啊