一:创建类和对象 class f: def bar(self): print(‘bar‘) def hello(self, name) print(‘hello %s‘%name) fobj = f() fobj.bar() > ‘bar‘ fobj.hello(‘tom‘) >‘hello tom‘ ps:类中的第一个参数必须是self,类中定义的函数叫方法
二:面向对象三大特性--封装
#三大特性:封装、继承、多态1.封装: #将内容封装到某处 #从某处调用被封装的内容 例1:将内容封装到某处
解析:self是一个形式参数,当执行 fobj = F(‘tom‘,18)时,self等于fobj 例2:从某处调用封装的内容调用封装的内容时,有两种情况: #通过对象直接调用 #通过间接self调用 fobj = F(‘tom‘,18)fobj.name >>> tom 调用fobj对象的name属性fobj.age >>> 18 调用fobj对象的age属性 class F: def __init__(self,name,age) self.name = name self.age = age def hello(self): print(self.name) print(self.age)fobj = F(‘tom‘,18)fobj.hello()>>> tom>>> 18
要求如下:1.打印汽车有4个轮子2.打印汽车是红色的3.打印汽车牌子是奔驰 1.打印汽车有8个轮子2.打印汽车是白色的3.打印汽车牌子是宝马#函数式编程:def carr(num): print(‘汽车有%s个轮子‘%num)def color(col): print(‘汽车是%s色‘ %col)def brand(bran): print(‘汽车牌子是%‘%bran)调用:carr(4)color(‘红色‘)brand(‘奔驰‘)
carr(8)color(‘白色‘)brand(‘宝马‘)
#面向对象编程class F: def __init__(self, carr, color, bran): self.carr = carr self.color = color self.bran = bran def carr(self): print(‘汽车有%s个轮子‘%self.carr) def color(col):1 print(‘汽车是%s色‘ %self.color) def brand(bran): print(‘汽车牌子是%‘%self.bran)fobj1 = F(4,‘红色‘,‘奔驰‘)fobj1.carr()fobj1.color()fobj1.brand() fobj2 = F(8,‘白色‘,‘宝马‘)fobj1.carr()fobj1.color()fobj1.brand()
三.1:面向对象的三大特性--继承
#继承:面向对象中的继承和现实世界的继承相同,即:子可以继承父的内容例子: #猫 class cat: def voice(self): print(‘喵~~~~‘) def eat(self): print(‘吃‘) def drink(self): print(‘喝‘) def pull(self): print(‘拉‘) #狗 class dog:
def voice(self): print(‘汪~~~~‘) def eat(self): print(‘吃‘) def drink(self): print(‘喝‘) def pull(self): print(‘拉‘) 由此看出,猫和狗都具备了相同的 吃、喝、拉的功能,只有叫声不同,那么可以利用继承的思想,将这些相同的功能进行提炼出来: #动物 class Animals: def eat(self): print(‘吃‘) def drink(self): print(‘喝‘) def pull(self): print(‘拉‘) #猫 class cat(Animals): def voice(self): print(‘喵~~~~~‘) class dog(Animals): def voice(self): print(‘汪~~~~‘) cat = cat() cat.eat() >>> 吃 cat.drink() >>> 喝 cat.pull() >>> 拉 由此可见,父类将相同的方法进行整合,子类仅需继承父类就可以获得这些方法而不必一一去实现每个方法
三.2: 多继承:
#继Python可以继承多个类#Python的类如果继承了多个类,那么寻找方法的方式有两种:深度优先和广度优先 #当类是经典类时,多继承,优先按照深度优先方式查找 #当类是新式类时,多继承,优先按照广度优先方式查找
原文地址:https://www.cnblogs.com/jbzd/p/9217282.html
时间: 2024-09-15 03:57:20