很多人理解的类就是以class开头定义的,不以class定义就不是类,也就不叫面向对象。来吧,看看下面这个例子:
def animal(name,age):
def catch(cat):
print('这是一只%s,它的年龄是%s,擅长抓老鼠。'% (cat['name'],cat['age']))
def eat(cat):
print('这只%s喜欢吃鱼' % cat['name'])
def init(name,age):
cat1 = {
'name':name,
'age':age,
'catch':catch,
'eat':eat
}
return cat1
res = init(name,age)
return res
c1 = animal('小猫','10')
c1['catch'](c1)
c1['eat'](c1)
print('---------------')
c2 = animal('大猫','20')
c2['catch'](c2)
c2['eat'](c2)
输出结果:
D:\python\python.exe D:/python/project/file_exec.py
这是一只小猫,它的年龄是10,擅长抓老鼠。
这只小猫喜欢吃鱼
---------------
这是一只大猫,它的年龄是20,擅长抓老鼠。
这只大猫喜欢吃鱼
Process finished with exit code 0
上面这段代码中,定义的函数animal(name,age)这就是一个类,其中,c1和c2就是对象。否认这个的都是认知不够且教条主义的大傻逼。按照哲学思想,animal类是对象c1和c2的抽象概念,而c1和c2是animal类的具象化,而这就叫做面向对象。不知道你发现了没有,只要你学好哲学,做什么事情都可以事半功倍,学python一样需要哲学思想指导,尤其是辩证唯物主义哲学,简直就是乾坤大挪移。