1、封装python
#1.将内容封装到某处
#建立类 class Foo: def __init__(self,name,age): #称为构造方法,根据类建立对象时自动执行 self.name=name self.age=age #根据类Foo建立对象 #自动执行Foo类的__init__方法 obj1=Foo("wupeiqi",18) #将wupeiqi和18分别封装到obj1(即self)的name和age的属性中 obj2=Foo('alex',73)
#2.从某处调用封装的内容
#2.1经过对象直接调用被封装的内容
class Foo(): def __init__(self,name,age): #称为构造方法,根据类建立对象时自动执行 self.name=name self.age=age obj1= Foo('wupeiqi',18) print(obj1.name) print(obj1.age) obj2=Foo('alex',73) print(obj2.name) print(obj2.age)
#2.2经过self间接调用
class Foo(): def __init__(self,name,age): #称为构造方法,根据类建立对象时自动执行 self.name=name self.age=age def detail(self): print(self.name) print(self.age) obj1=Foo('wupeiqi',18) obj1.detail() #python默认将obj1传给self参数,即obj1.detail(obj1),因此此时方法内部的self=obj1,即:self.name是wupeiqi;self.age是18 obj2=Foo('alex',73) obj2.detail()
2、继承服务器
#继承
# 动物:吃、喝、拉、撒
#
# 猫:喵喵叫(猫继承动物的功能)
#
# 狗:汪汪叫(狗继承动物的功能)
class Animal: def eat(self): print('%s吃'%self.name) def drink(self): print('%s喝'%self.name) def shit(self): print('%s拉'%self.name) def pee(self): print('%s撒'%self.name) class Cat(Animal): def __init__(self,name): self.name=name self.breed='猫' def cry(self): print('喵喵叫') class Dog(Animal): def __init__(self,name): self,name=name self.dreed='狗' def cry(self): print('汪汪叫') #############执行############## c1=Cat('小白家的小黑猫') c1.eat() c2=Cat('小黑家的小白猫') c2.drink() d1=Dog('胖子家的小痩狗') d1.eat()
3、多态函数
1.若是某个函数传入多个共同的参数时spa
2.根据某个模板建立某些东西code
3.使用同一个对象链接时对象
class SSH: def __init__(self,host,port,pwd,username): self.host=... def connection(self): #去建立链接 self.conn=和服务器建立的链接对象 def close(self): self.comm.关闭 def upload(self): self.conn 使用链接上传文件 def cmd(self): self.conn 使用链接执行命令 obj=SSH(...) obj.connection()
补充:blog
1.self就是调用当前方法的对象继承
静态字段适用场景:每一个对象中保存相同的东西时,能够使用静态字段接口
2.cmd
类?属性(实例变量、类变量、私有属性__var)、方法(构造方法、析构方法 (在销毁实例时能够写)、私有方法)
对象?实例化一个类以后获得的对象
封装?把一些功能的实现细节不对外暴露
-----类中封装了:字段、方法
-----对象中封装了:普通字段的值
举例:
继承?代码的重用、单继承、多继承(py2.7:经典类:深度优先,新式类:广度优先;py3.0:均是广度优先,推荐写新式类class Foo(object))
多态?多种形态、接口的重用
Python中默认支持多态
3.字段:普通字段(保存在对象中)、静态字段(保存在类中)
方法:普通方法(保存在类中、调用者是对象)、静态方法(保存在类中,调用者(无需建立对象),能够有任意个参数)