代码是这样的:
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类的语句
你这个
class Fish(object):
print("I am fish")
pass
class Salmon(Fish):
print("I am salmon")
pass
你是直接写在类下面的呀
它在编译的时候会直接执行啊