[Python_4] Python 面向对象(OOP)
0. 说明
Python 面向对象(OOP) 笔记、迭代磁盘文件、析构函数、内置方法、多重继承、异常处理
参考
1. 面向对象
# -*-coding:utf-8-*- """
OOP 面向对象编程
""" """
1. pass 的使用, pass 是占位符
"""
if True:
pass
print(10) def f1():
pass """
2. 定义类
""" class Emp:
pass """
3. 创建对象
"""
e1 = Emp()
print(e1.__class__) """
4. 定义静态变量
""" class Car:
brand = "BWM" # 静态变量
__color = "white" # __开头是私有的 print(Car.brand) # print(Car.__color) class Cat:
"""
类方法,是通过类访问的静态方法
类方法不需要实例化对象,通过类名直接进行调用,相当于java中的静态方法。
但方法的首参必须是cls类型,表示当前的类
"""
@classmethod
def add(cls, a, b):
return a + b """
静态方法,不通过类访问,直接访问的方法
python中的静态方法类似于scala中的函数,即可以直接访问的函数,
不需要通过类名访问。首个参数也无需定义成cls。
"""
@staticmethod
def sub(a, b):
return a - b """
成员函数 通过对象调用的函数,函数首个参数需要使用 self 作为参数
"""
def watch(self, a, b):
print(a)
print(b)
print("xx") """
构造函数
构造函数名称固定,就是__init__方法
""" class Person:
# 构造函数
def __init__(self):
print("创建了一个 Person 对象")
self.name = "tom"
self.age = 10
# del self.name p1 = Person()
print(p1.name) # 变量可以删除
# va = 100
# print(va)
# del va
# print(va)
2. 迭代磁盘文件
"""
n. 迭代磁盘文件
"""
import os def allfiles(dir):
print(dir, "gb2312")
if os.path.isdir(dir):
subdirs = os.listdir(dir)
for sub in subdirs:
allfiles(dir + "/" + sub) allfiles("F:/Archives/Books")
3. 析构函数
销毁对象时使用的函数
"""
析构函数
"""
class Man: # 构造函数
def __init__(self, name):
print("创建 Man")
self.name = name # 析构函数
def __del__(self):
pass
print("销毁 Man") # m1 = Man("tomasss")
# m2=m1
# m1 = None
4. 内置方法
"""
内置方法,操纵对象的属性
"""
m1 = Man("xxxxxx")
print(hasattr(m1, "age"))
setattr(m1, "age", 12)
delattr(m1, "age")
print(getattr(m1, "age", -1)) # 访问类的属性
# __dict__访问类的成员
r = Man.__dict__
print(r) # 访问类名
print(Man.__name__) # 所有父类构成的元组
print(Man.__bases__)
5. 多重继承
"""
考察多重继承,类可以有多个父类
"""
class Horse:
def __init__(self, name):
self.name = name class Donkey:
def __init__(self, age):
self.age = age class Luozi(Horse, Donkey):
def __init__(self, name, age, color):
Horse.__init__(self, name)
Donkey.__init__(self, age)
self.color = color lz1 = Luozi("L1", 12, "black")
print(lz1.name)
6. 异常处理
"""
异常处理
"""
try:
print(1 / 0)
except:
print("0不能做除数")
finally:
print("over") try:
print(1 / 0)
finally:
print("over")
[Python_4] Python 面向对象(OOP)的更多相关文章
- Python面向对象OOP
一 OOP 与C++和Java一样,Python同样具有OOP设计. 过程式:从前到后,一条一条,机器能接受的顺序性方式:方式大概为"首先你应该做什么,第二应该做什么,高级点的做点假 ...
- 如何吃透Python的面向对象(OOP)
本篇可乐和大家一起来吃透 Python 的面向对象,类和实例. 面向对象(OOP) 解释:面向对象它是一种编程的思想,将现实事物抽象化为编程对象. 举例说明:喝可乐 ① 选择自己根据配方买对应的材料 ...
- python面向对象基本概念(OOP)
面向对象(OOP)基本概念 面向对象编程 —— Object Oriented Programming 简写 OOP 目标 了解 面向对象 基本概念 01. 面向对象基本概念 我们之前学习的编程方式就 ...
- python 面向对象初级篇
Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...
- Python 面向对象 基础
编程范式概述:面向过程 和 面向对象 以及函数式编程 面向过程:(Procedure Oriented)是一种以事件为中心的编程思想. 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现 ...
- python 面向对象学习
------Python面向对象初 下面写一个类的简单实用,以便方便理解类 #python 3.5环境,解释器在linux需要改变 #阅读手册查询readme文件 #作者:S12-陈金彭 class ...
- Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
- Python3+Selenium2完整的自动化测试实现之旅(五):自动化测试框架、Python面向对象以及POM设计模型简介
前言 之前的系列博客,陆续学习整理了自动化测试环境的搭建.IE和Chrome浏览器驱动的配置.selenium-webdriver模块封装的元素定位以及控制浏览器.处理警示框.鼠标键盘等方法的使用,这 ...
- 【转】Python 面向对象(初级篇)
[转]Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
随机推荐
- 卸载或重新安装Redis集群
卸载或重新安装Redis集群 1.如果需要修改端口号,则需要将原来的Redis各节点的服务器卸载,并重新安装, 卸载服务命令如下: D:/Redis/redis-server.exe --servic ...
- java多线程总结:线程的两种创建方式及优劣比较
1.通过实现Runnable接口线程创建 (1).定义一个类实现Runnable接口,重写接口中的run()方法.在run()方法中加入具体的任务代码或处理逻辑. (2).创建Runnable接口实现 ...
- SSL编程(2).NET最简单的客户端
在Windows平台上,实现SSL的.NET类是System.Net.Security.SslStream类.这个类既可以用于建立SSL服务,也可以用来作为SSL客户端连接远端的SSL服务. 最简 ...
- 用canvas画弧形进度条
function toCanvas(id ,progress){ //canvas进度条 var canvas = document.getElementById(id), ctx = canvas. ...
- Visual studio 2017 Installer 打包.netframework
前几步和网上其他教程一样的.主要是把.net framework 打包进安装程序里,如果选的是“从与我的应用程序相同的位置下载系统必备组件”,会提示 ERROR: 要在“系统必备”对话框中启用“从与我 ...
- C# ArrayList的使用方法小总结
1.什么是ArrayList ArrayList就是传说中的动态数组,用MSDN中的说法,就是Array的复杂版本,它提供了如下一些好处: 动态的增加和减少元素 实现了ICollection和ILis ...
- MySQL数据库的配置
一.配置MySQL数据库 MySQL的官网www.mysql.com 1.解压绿色版mysql,并改名为mysql5.7,如下图 对比一下下图5.6以前的版本,少data目录(存放数据)和my-def ...
- oracle逐步学习总结之权限和角色(基础六)
原创作品,转自请注明出处:https://www.cnblogs.com/sunshine5683/p/10236129.html 继续上节的索引,这次主要总结oracle数据库的权限问题!(在总结的 ...
- 快速导出云服务器mysql的表数据
1.许多互联网应用的数据库都布署在远程的Linux云服务器上,我们经常要编辑表数据,导出表数据. 通常的做法是ssh连接到服务器,然后命令登录,命令查询导出数据,费时费力,效率低下. 安装TreeSo ...
- JavaScript--事件对象(25)
// JavaScript事件的一个重要的方面是它们拥有一些相对一致的特点,可以给开发提供强大的功能; // 最方便和强大的就是事件对象,它们可以帮你处理鼠标事件和键盘敲击方面的情况; // 此外还可 ...