概述

一、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

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

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

     Python学习系列(八)( 面向对象基础) Python学习系列(七)( 数据库编程) 一,面向对象 1,域:属于一个对象或类的变量.有两种类型,即实例变量—属于每个实例/类的对象:类变量—属于类 ...

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

    Python学习系列(九)(IO与异常处理) Python学习系列(八)( 面向对象基础) 一,存储器 1,Python提供一个标准的模块,称为pickle,使用它既可以在一个文件中存储任何Pytho ...

  3. Python学习系列(七)( 数据库编程)

    Python学习系列(七)( 数据库编程)        Python学习系列(六)(模块) 一,MySQL-Python插件       Python里操作MySQL数据库,需要Python下安装访 ...

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

    Python学习系列(六)(模块) Python学习系列(五)(文件操作及其字典) 一,模块的基本介绍 1,import引入其他标准模块 标准库:Python标准安装包里的模块. 引入模块的几种方式: ...

  5. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  6. Python学习系列(四)(列表及其函数)

    Python学习系列(四)(列表及其函数) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) Python学习系列(三)(字符串) 一.基本概念 1,列表是什么?     ...

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

    Python学习系列(三)(字符串) Python学习系列(一)(基础入门) Python学习系列(二)(基础知识) 一个月没有更新博客了,最近工作上有点小忙,实在是没有坚持住,丢久又有感觉写的必要了 ...

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

    Python基础语法 Python学习系列(一)(基础入门) 对于任何一门语言的学习,学语法是最枯燥无味的,但又不得不学,基础概念较繁琐,本文将不多涉及概念解释,用例子进行相关解析,适当与C语言对比, ...

  9. Python学习系列:目录

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

随机推荐

  1. greenplum安装札记(待完善)

    1.安装配置 1.1硬件配置 硬件服务器用到某私有云中ip段为192.168.228.111-192.168.228.120的十台服务器,相关主要配置如下表: 类别 主机名 IP 内存 硬盘 主要目录 ...

  2. Node.js——Buffer

    介绍 JavaScript没有读取和操作二进制数据流的机制,但是 node.js 引入了Buffer 类型,可以操作TCP流或者文件流 使用Buffer可以用来对临时数据(二进制数据)进行存储,当我们 ...

  3. MIPS的寄存器、指令和寻址方式的分类

    MIPS的32个寄存器 助记符 编号 作用 zero 0 恒为0 at 1 (assembly temporary)保留给汇编器使用 v0,v1 2-3 (values)子程序返回,即函数调用时的返回 ...

  4. redisd的非持久化配置

    如何关闭redis持久化?我的需求是只把redis当作缓存来用,所以持久化到硬盘对我的需求来说没有意义. 修改redis配置文件,redis.conf 第115行左右. 1.注释掉原来的持久化规则 # ...

  5. CAD参数绘制直线(com接口)

    用户可以在CAD控件视区任意位置绘制直线. 主要用到函数说明: _DMxDrawX::DrawLine 绘制一个直线.详细说明如下: 参数 说明 DOUBLE dX1 直线的开始点x坐标 DOUBLE ...

  6. JavaSE-06 二维数组

    学习要点 二维数组的定义 二维数组内存数据结构 不规则二维数组 二维数组的定义 语法格式 格式一 数据类型[][] 数组名 = new 数据类型[m][n]; m:表示这个二维数组有多少个一维数组. ...

  7. B3. Cocurrent 线程的状态

    [概述] 1). java.lang.Thread 类中定义了一个枚举 State, 定义了线程的六种状态:NEW.RUNNABLE.BLOCKED.WAITING.TIMED_WAITING.TER ...

  8. Android首页轮播图直接拿来用

    import java.util.ArrayList; import java.util.List; import java.util.concurrent.Executors; import jav ...

  9. 【讲●解】火车进出栈类问题 & 卡特兰数应用

    火车进出栈类问题详讲 & 卡特兰数应用 引题:火车进出栈问题 [题目大意] 给定 \(1\)~\(N\) 这\(N\)个整数和一个大小无限的栈,每个数都要进栈并出栈一次.如果进栈的顺序为 \( ...

  10. python 3 廖雪峰博客笔记(二) python解释器

    python 解释器用于理解 python代码,存在多种python解释器 CPython 官方版本python解释器,用C语言开发,使用最广泛 IPython 基于CPython,在交互方式上有所增 ...