[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 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
随机推荐
- ObjectOutputStream
public class Test { public static void main(String[] args) throws Exception { //writeObject(); readO ...
- 查看Linux操作系统位数
方法一: # uname -a x86_64则说明你是64位内核, 跑的是64位的系统. i386, i686说明你是32位的内核, 跑的是32位的系统 ----------------------- ...
- CRM项目hellokitty部分交互界面
登录界面 实现密码的不显示,验证码的跟换 员工管理界面 完成所有的功能 学校统计界面 完成所有的功能 班级管理 差一个手风琴组件 其他功能也完成了
- 熟悉DAO模式的用法
今天主要是使用DAO模式. DAO模式通过对业务层提供数据抽象层接口,实现了以下目标: 1. 数据存储逻辑的分离 通过对数据访问逻辑进行抽象,为上层机构提供抽象化的数据访问接口.业务层无需关心具体的s ...
- 大数据之presto
1.概述 Presto是一个分布式SQL查询引擎,用于查询分布在一个或多个不同数据源中的大数据集.presto可以通过使用分布式查询,可以快速高效的完成海量数据的查询.它是完全基于内存的,所以速度非常 ...
- Spring事务传播属性介绍(二).mandatory、not_supported、never、supports
Required.Required_New传播属性分析传送门:https://www.cnblogs.com/lvbinbin2yujie/p/10259897.html Nested传播属性分析传送 ...
- Silverlight 在ie8 下 报2152 错误
前几天改别人的一个silverlight程序,在项目属性上 选中了 “通过使用应用程序库缓存减小XAP 大小”,编译无错,发布无错误. 放服务器上测试: 站点绑定域名,使用ie9.ie10 都没有问题 ...
- [转]magento 2 modes – 每种模式的特点及如何切换(翻译)
本文转自:https://www.hellomagento2.com/switch-magento-2-system-modes/ 原文地址 在开始 Magento 2 使用之前,需要了解一些基本的东 ...
- 【Java并发编程】5、java中ConcurrentLinkedQueue类
一.类结构: java.lang.Object java.util.AbstractCollection<E> java.util.AbstractQueue<E> java. ...
- servlet 中处理 json 请求,并访问 service 类,返回处理结果
前言:jar 包中的 servlet 必须可以处理前端发出的 ajax 请求,接收参数,并返回结果. github地址:yuleGH github 这里有个约定,url 地址是 .json 结尾的,如 ...