python之类操作
2018-01-28 15:10 yyshuke 阅读(152) 评论(0) 编辑 收藏 举报面向对象:是利用类和对象来创建各种模型,将函数与数据捆绑,将代码进行封装,代码利用率高。特性就是封装、继承、多态
面向过程:程序根据逻辑从上到下,一步步的编写。
封装:包含着类的数据和方法 继承:子类可以从父类里调用方法和属性 多态:一个接口,多种实现。父类有多个子类,子类和父类有相同的方法名,但是实现不同。
1.类
class Cat(object):
def __init__(self,name):
self.name=name
def run(self):
print('%s is running'%self.name)
cat1=Cat('鼠克')
cat1.run()
2.继承例子:
class Cat(object):
def __init__(self,name):
self.name=name
def run(self):
print('%s is running'%self.name)
class Bosi(Cat):
def __init__(self,name,age):
super(Bosi,self).__init__(name) 用于继承的super()
self.age=age
def run(self):
Cat.run(self) 当和父类有相同方法的时候,会被子类的方法冲掉,这样就不会被冲掉
print('running.............')
cat2=Bosi('‘哈姆太郎’,2)
cat2.run()
3.多态
子类含有相同的方法,将类与函数相结合,用函数去调用。下面例子是具有相同的方法run
class Dog(object):
def __init__(self,name,age):
self.name=name
self.age=age
def run(self):
print('running1')
class JINmao(Dog):
def __init__(self,name,age,color):
super(JINmao,self).__init__(name,age)
self.color=color
def run(self):
print('running2')
class HAshiqi(Dog):
def __init__(self,name,age,sex):
super(HAshiqi, self).__init__(name,age)
self.sex=sex
def run(self):
print('running3')
def func(obj):
obj.run() 通过这个函数实现一个接口,多种实现
dog1=JINmao('shuke',2,'black')
dog2=HAshiqi('hamutailang',3,'girl')
dog3=Dog('gls',24)
func(dog1)
func(dog2)
func(dog3)
补充:
1.静态方法:和类没有多大关系的,本身只是一个函数,不用传参数self,通过@staticmethod
class A(object):
def __init__(self):
self.n='a'
@staticmethod
def run():
print('running')
a=A()
a.run()
2.类方法:可以访问类变量,通过@classmethod,传递的参数通常用cls
class A(object):
city='beijing'
@classmethod
def getcity(cls):
return cls.city
a=A()
print(a.getcity())