Python 面向对象 三

isinstance :检查是否object是类cls的对象,后面可以跟创建自己的类,也可以是基类。 可用于判断excel里面的数值是否是int类型

例如:isinstance(对象,类)

issubclass:检查某个类是否是某个类的子类。

例如:issubclass(类,类)

例:

class A:

pass

class B(A):

pass

b = B()

print (isinstance(b,A)) -->True,判断b是由A创建的,

print (issubclass(B,A)) -->True,判断B类继承A类,

异常处理:

异常全部捕获:Exception

代码块:try ..... except Exception,e

e 是实例,有Exception类创建的。

例如:

try:

inn = input("input num:")

print (inn)

except Exception,e:

print (e)

异常详细的捕获:KeyError,IndexError...

例如:

try:

k = [11,22,33]

k [100]

except IndexError as e:

print (e)

先用详细的捕获错误,然后再用全部的来捕获错误信息。

raise Exception("内容"):主动触发异常,将内容封装到e中。

try:

##逻辑代码

pass

except IndexError,e:

#捕获异常

pass

except Exception,e:

##捕获异常

pass

else:

###逻辑块中未出现异常,执行此处!

pass

finally:

###不管有没有异常,都要执行。

pass

可用于 连接数据库的代码中

print 对象时,调用的是类中的__str__方法

例如:

###利用面向对象来定义错误,然后调用。

#定义错误类:AlexError

class AlexError(Exception):

#使用构造方法,往里面传参数,达到动态显示错误信息的效果

def __init__(self,messge=None):

self.message = messge

##调用此方法,返回错误信息

def __str__(self):

if self.message:

return  self.message

else:

return "Alex Error"

try:

##触发错误

raise AlexError() -->不传参数      如若穿参数,则显示参数的内容

except AlexError as e:

print (e)  -->显示:"Alex Error"

assert: 条件语句,判断,1、程序测试使用。2、如果满足条件就用,不满足条件就不能用。

反射:

操作内存中某个容器中的元素

getattr:去某个容器(模块)中找函数,字符串函数名。如果有,则 获取函数

hasattr:判断某个容器里面是否存在某个函数。

setattr:去某个容器里面设置某个函数。

delattr:去某个容器里面删除摸个成员。

__import__(参数):动态导入模块

例如:

import home

controller,action = input("shuru URL:").split("/")  -->将模块和方法分割

module = __import__(controller)  -->动态传入模块参数

func = getattr(module,action) -->查找传入的模块中是否有action

ret = func() --> 获得返回值

print (ret)

单例模式:

内存中只存在单个实例

创建一个静态字段,用来存放永远存放到内存中的那个实例。

创建一个方法,用来存放到内存中。

socket

套接字

创建socket:  socket.socket()

send :发送数据到缓冲区,由缓冲区来进行处理发送

sendall:发送数据到缓冲区,立马发出去,不需要缓冲区处理

rev(1024):最大接受到的数据的size

例子:

客户端:

##导入socket

import socket

##创建socket

obj = socket.socket()

###创建连接,通过8341端口

obj.connect((‘localhost‘,8341))

####发送请求数据

obj.send("000000")

##接受返回的数据,最大size是1024

server_data = obj.recv(1024)

print(server_data)

###关闭连接

obj.close()

服务端:

##导入socket

import socket

##创建socket

obj_server = socket.socket()

###监听端口

obj_server.bind((‘localhost‘,8341))

###连接请求最大值

obj_server.listen(5)

###循环发送数据

while True:

print("waiting....")

####阻塞,等待连接

conn,addr = obj_server.accept()

###接受客户端发过来的数据,最大size为1024

client_data = conn.recv(1024)

print (client_data)

##发送数据

conn.send("111111111")

##断开与客户端的连接

conn.close()

socketserver:必须要创建一个类,类必须继承  SocketServer.BaseRequestionHandle,也必须定义一个方法handle

self.request.recv()

时间: 2024-11-18 02:15:14

Python 面向对象 三的相关文章

Python面向对象(三)

一.绑定方法与非绑定方法 一.绑定方法:绑定给谁就应该由谁来调用,谁来调用就会将谁当作第一个参数传入 1.绑定给对象的方法:类中定义的函数默认就是绑定给对象的 2.绑定给类的方法:为类中定义的函数加上一个装饰器@classmethod 二.非绑定方法:既不与类绑定,又不与对象绑定,意味着对象和类都可以来调用,无论谁来调用都是一个普通的函数,普通函数没有自动传值的效果 案例如下: class Foo: def f1(self): print(self) @classmethod def f2(cl

Python 面向对象三(转载)

来源:Mr.Seven www.cnblogs.com/wupeiqi/p/4766801.html 四.类的特殊成员 上文介绍了Python的类成员以及成员修饰符,从而了解到类中有字段.方法和属性三大类成员,并且成员名前如果有两个下划线,则表示该成员是私有成员,私有成员只能由类内部调用.无论人或事物往往都有不按套路出牌的情况, Python的类成员也是如此,存在着一些具有特殊含义的成员,详情如下: 1. __doc__ 表示类的描述信息 2. __module__ 和 __class__ __

三十九、python面向对象一

A.python面向对象 1.面向对象基础:面向对象三个特性:封装,继承,多态C# java 只能用面向对象编程Ruby,python 函数+面向对象 函数式编程:def 函数def f1(a): return "f1"def f2(b): return "f2" f1("www")f2("aaa") 面向对象式编程,类,def 方法class Func: def f1(self,a): return "f1&quo

python 面向对象(进阶篇)

上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 是一个模板,模板中包装了多个“函数”供使用(可以讲多函数中公用的变量封装到对象中) 对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数 面向对象三大特性:封装.继承和多态 本篇将详细介绍Python 类的成员.成员修饰符.类的特殊成员. 类的成员 类的成员可以分为三大类:字段.方法和属性 注:所有成员中,只有普通字段的内容保存对象

Python面向对象-day07

写在前面 上课第七天,打卡: 时间的高效利用: 前言: 今天egon老师补充了下 is 和 == 的区别,整理如下:Python中变量的属性以及判断方法 一.面向过程和面向对象 - 1.面向过程 核心是过程,过程就是解决问题的步骤:流水线.机械式: 优点:复杂的问题简单化,分成多个功能单元: 缺点:可扩展性差 应用:Linux内核.httpd.git - 2.面向对象 核心是对象: 要理解对象,应该把自己当做上帝,在上帝眼里一切存在的事物都是对象,不存在的也可以创建出来: 对象是 特征(变量)和

python 面向对象 进阶篇

在上篇<python面向对象>中,简单介绍了python中面向对象的基本知识 在这篇博客中,详细介绍python类的成员,成员修饰符,类的特殊成员. 类的成员 类的成员分为三种:字段,方法和属性 所有成员中,只有普通字段的内容保存对象中,即:根据此类创建了多少对象,在内存中就有多少个普通字段.而其他的成员,则都是保存在类中,即:无论对象的多少,在内存中只创建一份. 字段 字段包括普通字段和静态字段.静态字段,保存在类中.普通字段,保存在对象中. class FOO: country = “中国

(转)Python 面向对象编程(一)

Python 面向对象编程(一) 虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程.下面就来了解一下如何在Python中进行对象编程. 一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义: class className: block 注意类名后面有个冒号,在block块里面就可以定义属性和方法了.当一个类定义完之后,就产生了一个类对象.类对象支持

Python面向对象之类的成员

Python面向对象的编程过程中,我们为类实例化了对象,并通过对象指针来访问类中对应的资源,那么这些资源大体分为三大部分,分别是字段.方法和属性,我们将这三大块统称为类的成员. 一.字段 字段可以分为静态字段.动态字段,下面通过代码展示类中的两种字段 class MyClass:     # 静态字段,属于类,多个对象共用一个静态字段     leader = "abuve"       def __init__(self):         # 动态字段,属于对象,也可以叫普通的字段

我对 python 面向对象的理解

一.引言 面向对象的编程---object oriented programming,简称:OOP,是一种编程的思想.OOP把对象当成一个程序的基本单元,一个对象包含了数据和操作数据的函数.面向对象的出现极大的提高了编程的效率,使其编程的重用性增高. python面向对象的重要术语: 1.多态(polymorphism):一个函数有多种表现形式 2.继承(inheritance)子项继承父项的某些功能 3.封装(encapsulation)把需要重用的函数或者功能封装,方便其他程序直接调用 4.