码迷,mamicode.com
首页 > 其他好文 > 详细

面向对象-01

时间:2020-08-27 13:00:41      阅读:43      评论:0      收藏:0      [点我收藏+]

标签:style   读取文件   同方   方式   参数   python   base   就会   没有   

class Laogou:
def __init__(self, name):
# 特殊方法,如果遇到 类名(),该方法就会自动执行.其中的self参数实际上是类的对象obj,系统会自动给你传进去,所以不用管.该方法目的是进行数据初始化
self.n1 = name # 把传进的参数赋值给n1


# 其中__init__方法相当于是把数据打包放进obj对象中,这样当你需要调用时可以直接在obj中找,又因为obj就是self,因此也可以说是直接去self中找就行.

obj = Laogou(‘老狗‘) # 出现 类名(),__init__函数会自动执行,则‘老狗‘就会被当做参数传进去赋值给n1

‘‘‘面向对象什么时候写?如何写?
方式一: 归类+提取公共值 (归类:例如把人归为一类,狗归为一类,也即有多种共同属性的某一事物. 公共值:该类所有成员都会有的属性,如人类会说话,狗
会叫,则可以把说话作为一项属性提取出来作为人这一类的共同属性,把狗叫这一项属性提取出来作为狗这一类的共同属性.
方式二: 在指定类中编写和当前代码相关的所有代码+提取公共值
‘‘‘

‘‘‘面向对象的三大特性: 封装/继承/多态
封装:
将相关功能封装到一个类中:
class Message:
def email(self):pass
def msg(self):pass
def wechat(self):pass
将发送文件,接收文件,读取文件等功能都放在Message的类中.
将数据封装在一个对象中(需借用构造方法):
class Person:
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
obj = Person(‘孙福来‘, 18, ‘女‘)
‘‘‘

‘‘‘
继承:
class Base: # 父类,基类
def f1:pass
class Foo(Base): #子类,派生类
def f2:pass
原则:先在自己的类中找,没有再去父类中找相关方法或属性

为什么要有继承:主要是为了方法的复用,提高代码的重用性.当有两个类都有一个相同的方法时,就可以把这个方法单独的拿出来,放进一个新类中,再让这两个类都继承该类即可.
方法一:
class Foo:
def f1(self):pass

def f2(self):pass

class Bar:
def f1(self):pass

def f3(self):pass
方法二:
class Base:
def f1(self):pass

class Foo(Base):
def f2(self):pass

class Bar(Base):
def f3(self):pass
方法二把Foo与Bar类中拥有的共同方法f1,单独拿出来放进了一个类,然后再让Foo与Bar继承该类,实现了方法的复用.

多继承:在python中可以实现一个子类继承多个父类,查找时也是先从离自己最近的父类找起(从左向右,左边的父类更亲)

‘‘‘

‘‘‘
多态:

‘‘‘

面向对象-01

标签:style   读取文件   同方   方式   参数   python   base   就会   没有   

原文地址:https://www.cnblogs.com/gongteng/p/13543474.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!