初学python之day7

一、python学习之面向对象高级语法部分

1、静态方法

例如:

 1 class Dog(object):
 2
 3     def __init__(self,name):
 4         self.name = name
 5
 6     @staticmethod
 7     def eat():
 8         print(" is eating")
 9
10
11
12 d = Dog("ChenRonghua")
13 d.eat()

1)实现

@staticmethod装饰器即可把其装饰的方法变为一个静态方法

2)特点

静态方法是不可以访问实例变量或类变量

3)解决方案

  1. 调用时主动传递实例本身给eat方法,即d.eat(d)

  2. 在eat方法中去掉self参数,但这也意味着,在eat中不能通过self.调用实例中的其它变量了

2、类方法

例如:

class Dog(object):

    name = "我是类变量"

    def __init__(self,name):

        self.name = name

    @classmethod

    def eat(self):

        print("%s is eating" % self.name)

= Dog("ChenRonghua")

d.eat()

 

1)实现

类方法通过@classmethod装饰器实现

2)特点

类方法只能访问类变量,不能访问实例变量

3、属性方法

例如:

class Dog(object):

    def __init__(self,name):

        self.name = name

    @property

    def eat(self):

        print(" %s is eating" %self.name)

= Dog("ChenRonghua")

d.eat()

1)实现

@property把一个方法变成一个静态属性

2)特点

方法变成了一个静态属性,可以直接当做静态属性使用而不能在当做方法使用

4、反射

1)反射的定义

根据字符串的形式去某个对象中操作成员,具体包括:

根据字符串的形式去一个对象中寻找成员

根据字符串的形式去一个对象中设置成员

根据字符串的形式去一个对象中删除成员

根据字符串的形式去一个对象中判断成员是否存在

2)反射的函数

getattr(object,name[,default])

根据字符串的形式去一个对象中寻找成员

setattr(object, name, value)

根据字符串的形式去一个对象中设置成员

delattr(object, name)

根据字符串的形式去一个对象中删除成员

hasattr(object, name)

根据字符串的形式去一个对象中判断成员是否存在

5、异常处理

1)常用异常:

AttributeError 试图访问一个对象没有的树形,比如foo.x,但是foo没有属性x

IOError 输入/输出异常;基本上是无法打开文件

ImportError 无法引入模块或包;基本上是路径问题或名称错误

IndentationError 语法错误(的子类) ;代码没有正确对齐

IndexError 下标索引超出序列边界,比如当x只有三个元素,却试图访问x[5]

KeyError 试图访问字典里不存在的键

KeyboardInterrupt Ctrl+C被按下

NameError 使用一个还未被赋予对象的变量

SyntaxError Python代码非法,代码不能编译(个人认为这是语法错误,写错了)

TypeError 传入对象类型与要求的不符合

UnboundLocalError 试图访问一个还未被设置的局部变量,基本上是由于另有一个同名的全局变量,

导致你以为正在访问它

ValueError 传入一个调用者不期望的值,即使值的类型是正确的

2)更多异常:

ArithmeticError

AssertionError

AttributeError

BaseException

BufferError

BytesWarning

DeprecationWarning

EnvironmentError

EOFError

Exception

FloatingPointError

FutureWarning

GeneratorExit

ImportError

ImportWarning

IndentationError

IndexError

IOError

KeyboardInterrupt

KeyError

LookupError

MemoryError

NameError

NotImplementedError

OSError

OverflowError

PendingDeprecationWarning

ReferenceError

RuntimeError

RuntimeWarning

StandardError

StopIteration

SyntaxError

SyntaxWarning

SystemError

SystemExit

TabError

TypeError

UnboundLocalError

UnicodeDecodeError

UnicodeEncodeError

UnicodeError

UnicodeTranslateError

UnicodeWarning

UserWarning

ValueError

Warning

ZeroDivisionError

3)异常实现方式

try:

    # 主代码块

    pass

except KeyError,e:

    # 异常时,执行该块

    pass

else:

    # 主代码块执行完,执行该块

    pass

finally:

    # 无论异常与否,最终执行该块

    pass

二、python学习之scoket编程基础

 

1、scoket解释

socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。

2、socket和file的区别:

file模块是针对某个指定文件进行【打开】【读写】【关闭】

socket模块是针对 服务器端 和 客户端Socket 进行【打开】【读写】【关闭】

3、scoket编程思想

  1)TCP服务端

  1. 创建套接字,绑定套接字到本地IP与端口
  2. 开始监听连接
  3. 进入循环,不断接受客户端的连接请求
  4. 然后接收传来的数据,并发送给对方数据
  5. 传输完毕后,关闭套接字

  2)TCP客户端

  1. 创建套接字,连接远端地址
  2. 连接后发送数据和接收数据
  3. 传输完毕后,关闭套接字

4、代码实现

1)服务器端

import socket

#服务器端

server = socket.socket()

server.bind((‘localhost‘,6969))#绑定要监听的端口

server.listen()#监听

print("等待连接。。。")

conn,addr = server.accept()#等待接收

print(conn,addr)

server.close()

2) 客户端

import socket

#客户端

client = socket.socket()#声明socket类型,同时生成socket连接对象

client.connect((‘localhost‘,6969))

client.close()

先运行服务器端,然后再运行客户端

服务器端:


1

2

3

4

5

6

7

8

9

import socket

#服务器端

server = socket.socket()

server.bind((‘localhost‘,6969))#绑定要监听的端口

server.listen()#监听

print("等待连接。。。")

conn,addr = server.accept()#等待接收

print(conn,addr)

server.close()

客户端:


1

2

3

4

5

import socket

#客户端

client = socket.socket()#声明socket类型,同时生成socket连接对象

client.connect((‘localhost‘,6969))

client.close()

时间: 2024-08-03 10:10:27

初学python之day7的相关文章

初学 Python(十一)——切片

初学 Python(十一)--切片 初学 Python,主要整理一些学习到的知识点,这次是切片. #-*- coding:utf-8 -*- ''''' 切片 ''' L = ['name','age','sex','address','company'] #取前2个 print L[0:2] print L[:2] #取倒数第一个 print L[-1] #取后两个 print L[-2:] #取倒数第二个 print L[-2:-1] print len(L) #隔一个数取一次,从第一个数开

初学 Python(十三)——匿名函数

初学 Python,主要整理一些学习到的知识点,这次是匿名函数. # -*- coding:utf-8 -*- #关键字lambda定义的函数都是匿名函数 #做对象 f = lambda x,y:x+y print f(1,2) #做参 print reduce(lambda x,y:x+y,[1,2,3,4,5,6]) #做返回值 def build(x,y): return lambda:x*x+y*y g = build(1,2) print g print g()

初学Python

初学Python 1.Python初识 life is short you need python--龟叔名言 Python是一种简洁优美语法接近自然语言的一种全栈开发语言,由"龟叔"编写开发一种易学易懂高效的语言. Python提供丰富的接口和模块,便于使用其他语言细化,性能提升对要求较高的软件. 以上简单描述了一下Python语言的优点,缺点我就不写了,因为不需要对比,强大的语言自会解决现在几个劣势. 针对于初学者版本选择的问题,因为现在国内大多数在使用2.X版本,个人建议使用3.

【初学python】错误SSLError: [Errno 1] _ssl.c:504:的解决记录

最近在实习公司学习使用python做web自动化测试,其中使用到httplib这个模板,主要用于与待测试界面建立HTTP连接,发送数据请求,接收请求状态码和查询数据,验证功能.但是新版本的web界面改成使用https协议,原来的测试用例都变成无法跑通的状态. 将协议从HTTP改成HTTPS后,报以下错误: SSLError: [Errno 1] _ssl.c:504: error:140770FC:SSL routines:SSL23_GET_SERVER_HELLO:unknown proto

初学Python(九)——函数

初学Python(九)--函数 初学Python,主要整理一些学习到的知识点,这次是函数. 函数定义: # -*- coding:utf-8 -*- #函数的定义 def my_function(x): if x>0: return x elif x<0: return -x else: pass #函数的调用 a = my_function(-1) b = my_function(2) c = my_function(0) print a,b,c #空函数,pass为占位符 def empt

初学 Python(十四)——生成器

初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 创建list中所有的元素,而 是在需要的时候创建 ''' #创建generator有2种方式 #第一种将列表表达式中的[]改为()即可 g = (x*x for x in range(10)) print g for n in g: print n #第二种,关键字yield def fab(ma

初学 Python(十二)——高阶函数

初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 称为高阶函数 ''' #函数作参 def f(x): return x*x #map函数为内置函数,意思为将第二个参数的list作用到f函数中 #最后的结果为一个list print map(f,[1,2,3,4,5]) #reduce函数为内置函数,意思将第二参数的序列作用到add函数值 #将结

初学Python(八)——迭代

初学Python(八)——迭代 初学Python,主要整理一些学习到的知识点,这次是迭代. # -*- coding:utf-8 -*- from collections import Iterable ''''' 迭代 ''' L = ['af','st','at','psst','beta'] D = {1:'af',2:'st',3:'at',4:'psst',5:'beta'} S = 'helloworld' #数组 for item in L: print item #字典 for

Check iO:初学Python

The end of other For language training our Robots want to learn about suffixes. In this task, you are given a set of words in lower case. Check whether there is a pair of words, such that one word is the end of another (a suffix of another). For exam