Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >面向对象 "一"

面向对象 "一"

作者头像
Wyc
发布于 2018-09-11 03:22:38
发布于 2018-09-11 03:22:38
25000
代码可运行
举报
文章被收录于专栏:Python研发Python研发
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1:面向对象不是所有情况都适用。

2面向对象编程

a:定义类

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

       def (方法一)(self,bb)

               pass

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

使用对象去类中找方法。

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

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

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

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

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

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

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

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

面向对象有三个特性:

                          封装 , 继承 , 多态。
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
面向对象编程,类,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



代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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()

#执行结果
小黑 吃
小黑 喝
小黑 汪
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#多个继承
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 删除。

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
python面向对象OOP入门
      面向对象编程不是python独有,几乎所有高级语言都支持;面向对象不管在那个语言中都有三大特性:即:封装、继承、多态;具体的本文主要讲python面向对象--类及三大特性的具体实现;
py3study
2020/01/07
4330
python面向对象OOP入门
全面深入理解Python面向对象编程
面向过程编程最易被初学者接受,其往往用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处。
顶级程序员
2018/07/23
8930
Python学习 :面向对象 -- 三大
      -- 子类会根据左侧优先原则,在第一个父类中寻找方法,在找不到的情况下在去父类的父类中寻找
py3study
2020/01/21
3390
Python基础17-面向对象
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
5310
Python基础17-面向对象
1.面向对象:初识
面向对象的程序设计的核心是对象(上帝式思维),要理解对象为何物,必须把自己当成上帝,上帝眼里世间存在的万物皆为对象,不存在的也可以创造出来。
changxin7
2019/08/14
3070
Python面向对象编程(一)
1.面向过程的程序设计:核心是过程二字,过程指的是解决问题的步骤,即先干什么再干什么......面向过程的编程就好比设计一条流水线,是一种机械式的思维方式。
py3study
2020/01/07
3330
Python面向对象编程(一)
python3--面向对象--综合练习
3  解释生成器(generator)与函数的不同,并实现且使用简单generator
py3study
2018/08/03
4870
python_面向对象笔记
继承 什么是继承? 继承是一种新建类的方式,新建的类称为子类或派生类 父类又称为基类、超类 子类可以“遗传”父类的属性,从而可以减少代码冗余 如何寻找继承关系? 先抽象,再继承,继承描述的就是 一种父子关系 / 从属关系 继承的语法 class Foo1: pass class Foo2: pass class Bar(Foo1, Foo2): pass class Bar: # 在python3中没有继承任何类的类,默认继承object pass 新式类与经
py3study
2020/01/17
3170
python面向对象的三大特性
# 示例:循环让用户输入:用户名/密码/邮箱。 输入完成后再进行数据打印。 # 以前的写法: USER_LIST = [] while True: user = input('请输入用户名:') pwd = input('请输入密码:') email = input('请输入邮箱:') temp = {'username':user,'password':pwd,'email':email} USER_LIST.append(temp) for item in USER_LIST: temp = "我的名字:%s,密码:%s,邮箱%s" %(item['username'],item['password'],item['email'],) print(temp) # 面向对象写法一: class Person: def __init__(self,user,pwd,email): self.username = user self.password = pwd self.email = email USER_LIST = [对象(用户/密码/邮箱),对象(用户/密码/邮箱),对象(用户/密码/邮箱)] while True: user = input('请输入用户名:') pwd = input('请输入密码:') email = input('请输入邮箱:') p = Person(user,pwd,email) USER_LIST.append(p) for item in USER_LIST: temp = "我的名字:%s,密码:%s,邮箱%s" %(item.username,item.password,item.email,) print(temp) # 面向对象写法二: class Person: def __init__(self,user,pwd,email): self.username = user self.password = pwd self.email = email def info(self): return "我的名字:%s,密码:%s,邮箱%s" %(item.username,item.password,item.email,) USER_LIST = [对象(用户/密码/邮箱),对象(用户/密码/邮箱),对象(用户/密码/邮箱)] while True: user = input('请输入用户名:') pwd = input('请输入密码:') email = input('请输入邮箱:') p = Person(user,pwd,email) USER_LIST.append(p) for item in USER_LIST: msg = item.info() print(msg)
py3study
2020/01/16
2880
Python面向对象编程Day 25部分
  说的就是数据属性,点的方式调用的就是属性,把函数封装成数据属性,使得外部在调用的时候感觉不到内部的逻辑。既可以访问实例属性还可以访问类属性。
py3study
2020/01/19
3380
Python面向对象编程Day 25部分
面向对象基础篇
面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。
py3study
2020/01/15
3950
Python数据分析之基础篇(二)
封装,顾名思义就是将内容封装到某个地方,以后再去调用被封装在某处的内容。 所以,在使用面向对象的封装特性时,需要:
AI异构
2020/07/29
4070
Python-面向对象编程
概述: 面向过程:根据业务逻辑从上到下写代码。 函数式:将某功能代码封装到函数中,以后便无需重复编写,进调用函数即可。 面向对象:对函数进行分类和封装,让开发“更快更好更强” 创建类和对象 面向对象编
洗尽了浮华
2018/01/22
6570
Python-面向对象编程
Python面向对象
对象查找属性的顺序:先从对象空间找 ------> 类空间找 ------> 父类空间找 ------->…
Dreamy.TZK
2020/04/09
5740
面向对象进阶
反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。
超蛋lhy
2018/08/31
3830
Python之面向对象四
面向对象进阶 一、关于面向对象的两个内置函数 isinstance   判断类与对象的关系    isinstance(obj,cls)检查obj是否是类 cls 的对象,返回值是bool值 issubclass     判断类与类的关系             issubclass(sub, super)检查sub类是否是 super 类的派生类,返回值是bool值 class A: pass class B(A): pass a = A() print(isinstance(a,A))
新人小试
2018/04/12
8940
面向对象:封装,多态
1. 封装: 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分析. 比如. 你写了⼀个很⽜B的函数. 那这个也可以被称为封装. 在⾯向对象思想中. 是把⼀些看似⽆关紧要的内容组合到⼀起统⼀进⾏存储和使⽤. 这就是封装.
changxin7
2019/08/14
7840
面向对象:封装,多态
【Python 入门第十五讲】OOP(面向对象)思想
在 Python 中,面向对象编程 (OOP) 是一种在编程中使用对象和类的编程范式。它旨在在编程中实现现实世界的实体,如继承、多态性、封装等。OOP 的主要概念是将数据和处理该数据的函数绑定在一起,作为一个单元,以便代码的其他部分无法访问此数据。
不惑
2024/02/10
4240
【Python 入门第十五讲】OOP(面向对象)思想
面向对象的三大特性(封装、继承、多态)
继承 什么是继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类 python中类的继承分为:单继承和多继承 class ParentClass1: #定义父类 pass class ParentClass2: #定义父类 pass class SubClass1(ParentClass1): #单继承,基类是ParentClass1,派生类是SubClass pass class SubClass2
用户1214487
2018/01/23
4.2K0
面向对象的三大特性(封装、继承、多态)
Python-面向对像及其他
其他相关 1、isinstance(obj,cls)       检查是否obj是类cls的对象 # 针对变量 n = 123 s = "123" print isinstance(n,int) # True print isinstance(s,int) # False print isinstance(s,str) # False # 针对类 class Foo: pass obj = Foo() print isinstance(obj,Foo) # True 2、issubclass(sub,s
洗尽了浮华
2018/01/22
6970
相关推荐
python面向对象OOP入门
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档