首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面向对象 "一"

面向对象 "一"

作者头像
Wyc
发布2018-09-11 11:22:38
2280
发布2018-09-11 11:22:38
举报
文章被收录于专栏:Python研发Python研发
1:面向对象不是所有情况都适用。

2面向对象编程

a:定义类

calss Foo:                    注意顶一个类的时候首字母必须是大写

       def (方法一)(self,bb)

               pass

b:根据创建对象,创建和Foo实列的。

使用对象去类中找方法。

3:self,是一个形式参数,python内部传递的。

4:类+括号就会自动执行类中的__init__方法:创建了一个对象在__init__方法中执行具体的封装操作。

__init__:有一个特殊的名字:构造方法

__del__:解释器销毁对象的时候会自动调用,特殊的名字:析构方法
封装:

使用场景:当同一类型的方法具有相同的参数时,直接封装到对象即可。

使用场景:把类当做模板,创建多个对象(对象内封装的数据可以不一样)

5:派生类可以继承基类中的所有功能。

6:派生类和基类同时存在,优先找派生类。

面向对象有三个特性:

                          封装 , 继承 , 多态。
面向对象编程,类,def函数。          参考:
class Oldboy:           定义类
    def fetch(self,backend):         
        print(backend) 
    def add_record(self,backend,record):
        pass
#创建对象
ret = Oldboy()
  

ret.fetch("www.xxx.com") ret.add_record("www.xxx.com","www.ooo.com") #这个不执行 #输出结果 www.xxx.com



class OldBoy:
    def __init__(self,bk):      #bk是形参,对应外部穿过来的实参
        '''
        构造方法
        :return: bk
        '''
        self.backend = bk       #self.backend = bk相当于在__init__中bk的参数

    def fetch(self):
        print('fetch中self的内存地址:',self)
        return self.backend     #backend用来接收init方法中bk的参数

    def add_record(self,record):
        print('add_record中self的内存地址:',self)
        return self.backend + record

obj = OldBoy("www.oldboy.org")      #创建了一个对象obj,然后把www.oldboy.org封装到类中对应的形参bk
# obj.backend = "www.oldboy.org"
print('obj对象的内存地址:',obj)
ret = obj.fetch()
print(ret)

obj2 = OldBoy(2)
# obj2.backend = 2
print('obj2对象的内存地址:',obj2)
ret = obj2.add_record(3)
print(ret)
class Abcd:          #父类
    def chi(self):
        print(self,name +"吃" )
    def he(self):
        print(self,name + "喝")
class Dog(Abcd):          #继承父类
    def __init__(self,name):
        sela.name = name
    def jiao(self):
        print(self.name + "汪")
ret = Dog("小黑")
ret.chi()
ret.he()
ret.jiao()

#执行结果
小黑 吃
小黑 喝
小黑 汪
#多个继承
class Abcd(object):
    def f1(self):
        print("Abcd")
class A(Abcd):
    def f(self):
        print("A")
class B(Abcd):
    def f1(self):
        print("B")
class C(A):
    def f(self):
        print("C")
class D(B):
    def f1(self):
        print("D")
class E(C,D):
    def f(self):
        print("E")
ret = E()
ret.f1()


#执行结果
D
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-06-01 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档