Python学习系列之面向对象

概述

一、Python编程方式

  1. 面向过程编程:根据业务逻辑从上到下磊代码
  2. 面向函数编程:将某功能代码封装到函数中,将来直接调用即可,无需重新写
  3. 面向对象编程:对函数进行分类、封装

二、面向过程编程

while True:
    if cpu利用率 > 90%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接

    if 硬盘使用空间 > 90%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接

    if 内存占用 > 80%:
        #发送邮件提醒
        连接邮箱服务器
        发送邮件
        关闭连接

三、面向函数编程

def 发送邮件(内容)
    #发送邮件提醒
    连接邮箱服务器
    发送邮件
    关闭连接

while True:
    if cpu利用率 > 90%:
        发送邮件(‘CPU报警‘)

    if 硬盘使用空间 > 90%:
        发送邮件(‘硬盘报警‘)

    if 内存占用 > 80%:
        发送邮件(‘内存报警‘) 

面向对象简单应用

一、面向对象概述

面向对象是一种编程方式,此编程方式落地需要"类"和"对象",面向对象其实就是对类和对象的操作

二、创建一个类

##############创建类
class Foo:

    def Bar(self):
        print(‘Bar‘)

    def Hello(self, name):
        print(‘i am %s‘ %name)

##############实例化
obj = Foo()
obj.Bar()                #执行Bar方法
obj.Hello(‘wupeiqi‘)     #执行Hello方法

三、面向对象的self详解

self是一个形式参数,当执行obj1 = Foo(‘alex‘,19)时,self等于obj1

当执行obj2 = Foo(‘eric‘,20)时,self等于obj2

如图self=obj

面向对象三大特征 

一、面向对象之封装

概述:

封装就是将内容封装到某个地方,以后再去调用被封装的内容

简单的实例

###############代码
class Foo:
    def __init__(self, name, age): #称之为构造方法,根据类创建对象时自动执行
        self.Name = name
        self.Age = age
    def info(self):
        print("""
            My name is: %s
            My age is: %d
        """ % (self.Name, self.Age))
ansheng = Foo("alex", 18)  #将alex和18封装到name和age属性中
ansheng.info()
xiaoming = Foo("eric", 30) #将eric和30封装到name和age属性中
xiaoming.info()

###############结果
My name is: Ansheng
My age is: 18

My name is: xiaoming
My age is: 30
        

二、面向对象之继承

概述:

继承就是子可以继承父的内容,所以对于继承来说,其实就是将多个类共有的方法提取到父类中,子类仅需继承父类而不需要一一实现每个方法

简单的实例

创建一个‘人‘信息的类,比如人都有四肢、头发、眼睛、耳朵,所以把这个写到一个类里;在创建一个中国人和外国人的类,中国人的语言是中文,皮肤是黄色;外国人的语言是英文,皮肤是黑色

#######################代码
class People:
    def __init__(self):
        print("""
        你的通用特征有:四肢、头发、眼、耳朵
        """)
class China(People):
    def info(self):
        print("""
        你是中国人,你的语言是中文,皮肤是黄色
        """)
class Us(People):
    def info(self):
        print("""
        你是美国人,你的语言是英文,皮肤是黑色
        """)
c = China()
c.info()
m = Us()
m.info()

########################结果
你的通用特征有:四肢、头发、眼、耳朵
你是中国人,你的语言是中文,皮肤是黄色

你的通用特征有:四肢、头发、眼、耳朵
你是美国人,你的语言是英文,皮肤是黑色

父类or子类

基类or派生类

1.派生类可以使用基类中的所有方法

2.如果派生类和基类同时存在,优先找派生类

继承中的多继承查找顺序

顶类两个类没有父类的情况下

顶类两个类有父类的情况下

类的成员

一、类的成员分类

二、字段

普通字段:属于对象,通过对象调用

静态字段:属于类通过类调用

################代码:
class Province:
    country = "中国"        #静态字段,作用就是把相同的字段 都写到这里,节省内存,通过类获取属性. 在代码加载时就已经创建了
    def __init__(self,name):
        self.name  = name  #普通字段

hn = Province(‘河南‘)          #通过类创建对象
print(hn.name)                 #调用普通字段
print(Province.country)        #调用静态字段
################结果:
河南
中国

三、方法

普通方法:由对象调用,至少需要一个self参数

静态方法:由类调用,无默认参数

  作用:如果只想写一个普通的函数的话,需要静态方法

类方法:由类调用,至少需要一个cls参数

  作用:获取类名称

############################## 代码:
class Province:
    def __init__(self,name):
        self.name  = name
    def show(self):  #普通方法,由对象调用执行
        print(‘普通方法‘)
    @staticmethod
    def f1(arg):     #静态方法,通过类调用执行.作用是:如果只想写一个普通的函数的话,就写静态方法,不需要self(这个就相当于普通函数)
        print(arg)
    @classmethod
    def f2(cls):     #类方法,通过类调用执行.作用是:能获取类名
        print(cls)

hn = Province(‘河南‘)    #通过类创建对象
hn.show()               #调用普通方法
Province.f1(‘静态方法‘)  #调用静态方法
Province.f2()           #调用类方法
########################## #####结果:
普通方法
静态方法
<class ‘__main__.Province‘>

类的成员修饰符

一、概述:

对于每个类的成员都有两种

  • 公有成员:在任何地方都能访问
  • 私有成员:只有在类的内部能访问

二、定义和调用私有静态字段

##########################################代码
class Foo:

    __ClassMembers = "私有的"  # 私有的静态字段
    def Members(self):                # 通过类中的方法调用私有的静态字段进行输出
        print(Foo.__ClassMembers)

obj = Foo()       # 创建一个对象
obj.Members()     # 执行类中的Members方法
##########################################结果
私有的

三、定义和调用私有普通字段

###################################代码
class Foo:

    def __init__(self, url):  #类的构造方法
        self.__Blog = url     #私有普通字段
        print(self.__Blog)    #直接在狗仔方法没输出传入的URL

obj = Foo("www.baidu.com")    #创建一个对象,传入一个值
###################################结果
www.baidu.com
时间: 2024-10-09 20:23:52

Python学习系列之面向对象的相关文章

Python学习系列(八)( 面向对象基础)

 Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类本身. 2,类的方法:对象也可以使用属于类的函数来具有功能,这样的函数称之为类的方法.域和方法合称为类的属性.类使用class关键字创建,类的属性被列在一个缩进块中. 3,self:类的方法与普通的函数只有一个特别的区别----他们必须有一个额外的第一个参数名称,但是在调用的时候不能为其赋值,Pyt

Python学习系列(一)(基础入门)

Python入门 本系列为Python学习相关笔记整理所得,IT人,多学无害,多多探索,激发学习兴趣,开拓思维,不求高大上,只求懂点皮毛,作为知识储备,不至于落后太远.如果兴趣学习者,推荐一个基础视频:http://edu.51cto.com/lesson/id-11637.html 本文主要介绍Python的相关背景,环境搭建. 一.了解Python 1,关于Python的语言特点: 借用Python官网Https://www.python.org的解释: Python is powerful

Python学习系列(九)(IO与异常处理)

Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Python对象,又可以把它完整的取出来,这被称为持久的存储对象.类似的,还有一个功能与之相同的模块—cPickle,用c语言编写的,速度比pickle快1000倍. 2,示例: 1 import cPickle as p 2 shoplistfile='shoplist.data' 3 shoplist=[

Python学习系列(六)(模块)

一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: i)引入模块:import   moduleName ii)引入模块下的函数:from moduleName import function1,function2,-- iii)引入模块下的所有函数:from moduleName import * 使用模块里的函数的方法: moduleName.function(agrs) 示例: >>> import math >

Python学习系列(三)(字符串)

Python学习系列(三)(字符串) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了,可见本人的坚持精神不佳,本系列没有任何目的,纯属业余学习,或者说是一时兴趣所致.通过本文,能够学习字符串的基本操作,日积月累,多多练习,学到了,会用了才是王道. 一.基本概念 1,关于转义问题 1)"''"方式: >>> s="Hello 'Jack'--" >>> print s Hello 'Jack'--

Python学习系列(四)Python 入门语法规则2

Python学习系列(四)Python 入门语法规则2 2017-4-3 09:18:04 编码和解码 Unicode.gbk,utf8之间的关系 2.对于py2.7, 如果utf8>gbk, utf8解码成Unicode,再将unicode编码成gbk 对于py3.5 如果utf8>gbk, utf8 直接编码成gbk(中间那一步直接被优化了) 3.很多时候,这个可以直接跳过,只有当编码出下问题的时候,再考虑这个知识点 二.运算符 1.算数运算: 2.比较运算: 3.赋值运算: 4.逻辑运算

Python学习系列:目录

Python学习系列(二)Python 编译原理简介 Python学习系列(三)Python 入门语法规则1

python学习笔记12-python面向对象

python学习笔记12-python面向对象 python一切皆对象 一.基本概念 1.面向对象和面向过程 面向对象编程:C++,Java,Python 面向过程编程:函数式编程,C程序等 2.类和对象 类:是对事物的抽象,比如:人类,球类 对象:是类的一个实例,比如:足球,篮球,对象就是对类的实例化 属性:五官,眼,鼻子,理解为一个变量,静态属性 方法:对人来说,吃穿住行,理解为一个函数,动态方法 实例说明:球类可以对球的特征和行为进行抽象,然后可以实例化一个真实的球实体出来 3.为什么要使

Python学习系列(二)(基础知识)

Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比,避免陷入语法的苦海.我认为初学者学习语法的目标是学会使用即可,关于对概念的深入理解,剖析,没有一定的知识积累是很难做到的. 学习Python,基本语法不是特别难,有了C的基本知识,理解比较容易.本文的主要内容是Python基础语法,学完后,能熟练使用就好.(开发环境依然是Python2.7,简单使用