@特殊方法、异常处理、反射、socket

@类

属性

实例变量

类变量

私有属性__var

方法

构造方法,

析构函数(python自带,不写也有,写了相当与重构)

私有方法

继承

继承

组合

@7.2继承及组合!!

@属性方法(高级方法,不用也能干活):把一个方法变成一个静态属性,不能用括号,不可以赋值。

@property #attribute

def eat(self):

d.eat

@如果想赋值,在上述函数下加:

@eat.setter

def eat(self,food):

print("set to food:",food)

self.__food = food

@删除

普通属性:del d.__food

静态属性:

@eat.deleter

def eat(self):

del self.__food

@http://www.cnblogs.com/alex3714/articles/5213184.html

航班、类的特殊成员

@基类是type类的一个实例。

@ 创建实例时,__new__ 函数出发__init__,默认就有,可以创建覆盖,一般不用。

@反射(重要,测试一下)

def bulk(self):

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

class Dog(object):

def __init__(self,name):

self.name = name

def eat(self,food):

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

d = Dog("NiuHanYang")

choice = input(">>:").strip()

if hasattr(d,choice):

getattr(d,choice)()#判断有这个函数名,执行函数

else:

setattr(d,choice,bulk) #d.talk = bulk,将外面的函数装到实例中

func = getattr(d, choice)

func(d)

删除:delattr(d,choice)

@异常处理

except xxxError as e:

print(e)

except Exception as e:#所有错抓,可以先except一个错误,然后再继续抓所有错误。

以上都可打印出错误名称,但是遇到缩进等问题还是会报错,此时只用except:

@常见异常,只看常用的http://www.cnblogs.com/wupeiqi/articles/5017742.html(这是py2版本)

@自定义异常:

class AlexError(Exception):

def __init__(self, msg):

self.message = msg

try:

raise AlexError('数据库连不上')

except AlexError as e:

print(e)

@@@socket

@ip-port相当于总机,一共65535个;端口相当于分机;

@http://www.cnblogs.com/alex3714/articles/5227251.html

@地址簇:TCP/IP的更底层,即网络层

socket.AF_UNIX unix没有网卡,本机进程间通信

socket.AF_INET IPV4 

socket.AF_INET6  IPV6

@洪水攻击,超多并发冲击网站,我们的网站一般也就几万并发能力,超过后会拒绝访问。

A发起对B的请求,B返回但是A因为是伪造的ip所以接收不到,B就会等待A的反馈几十秒,从而挂起链接。A不停的发起伪造地址头的请求,B会激增链接挂起量。

@@@socket通信案例

@#客户端

import socket

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

client.connect(('localhost',6969))#?,端口

while True:

msg = input(">>:").strip()

if len(msg) == 0:continue

client.send(msg.encode("utf-8"))#只能接受ascc码的byte类型数据,不能send空

data = client.recv(10240)

print("recv:",data.decode())

client.close()

@服务器端

import socket

server = socket.socket()

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

server.listen(5) #监听,最大挂起排队数

print("我要开始等电话了")

while True:

conn, addr = server.accept()  # 等电话打进来(链接的标记位,地址)

# conn就是客户端连过来而在服务器端为其生成的一个连接实例

print(conn, addr)

print("电话来了")

count = 0

while True:

data = conn.recv(1024)#1024个b,不能用server.recv(1204)来接收

print("recv:",data)

if not data:

print("client has lost...")

break

conn.send(data.upper())

count+=1

if count >10:break

server.close()

@@@看到

7-13-31

python-day7-静态方法、类方法、属性方法、特殊成员方法、反射、异常处理、socket的更多相关文章

  1. python静态方法类方法属性方法

    Python的静态方法和类成员方法都可以被类或实例访问,两者概念不容易理清,但还是有区别的: 1)静态方法无需传入self参数,类成员方法需传入代表本类的cls参数: 2)从第1条,静态方法是无法访问 ...

  2. python isinstance和issubclass,区分方法和函数,反射

    一.isinstance和issubclass 1.isinstance class Animal: def eat(self): print('刚睡醒吃点儿东西') class Cat(Animal ...

  3. 面向对象【day08】:静态方法、类方法、属性方法(九)

    本节内容 概述 静态方法 类方法 属性方法 总结 一.概述 前面我们已经讲解了关于类的很多东西,今天讲讲类的另外的特性:静态方法(staticmethod).类方法(classmethod).属性方法 ...

  4. Python Day7

    概述 面向对象高级语法部分 静态方法.类方法.属性方法 类的特殊方法 反射 静态方法 通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法 ...

  5. python 面向对象静态方法、类方法、属性方法、类的特殊成员方法

    静态方法:只是名义上归类管理,实际上在静态方法里访问不了类或实例中的任何属性. 在类中方法定义前添加@staticmethod,该方法就与类中的其他(属性,方法)没有关系,不能通过实例化类调用方法使用 ...

  6. Python面向对象静态方法,类方法,属性方法

    Python面向对象静态方法,类方法,属性方法 属性: 公有属性 (属于类,每个类一份) 普通属性 (属于对象,每个对象一份) 私有属性 (属于对象,跟普通属性相似,只是不能通过对象直接访问) 方法: ...

  7. Python基础(10)——类进阶(静态方法、类方法、属性方法)

    以下方法为高级方法,一般来说没什么卵用 1.静态方法 @staticmethod 相当于把类内的函数从类内独立出来,只是名义上归类管,实际上不可以调用类内的变量和函数 通过@staticmethod装 ...

  8. 【面试必问】python实例方法、类方法@classmethod、静态方法@staticmethod和属性方法@property区别

    [面试必问]python实例方法.类方法@classmethod.静态方法@staticmethod和属性方法@property区别 1.#类方法@classmethod,只能访问类变量,不能访问实例 ...

  9. Python 静态方法、类方法和属性方法

    Python 静态方法.类方法和属性方法 静态方法(staticmethod) staticmethod不与类或者对象绑定,类和实例对象都可以调用,没有自动传值效果,Python内置函数staticm ...

  10. python中静态方法、类方法、属性方法区别

    在python中,静态方法.类方法.属性方法,刚接触对于它们之间的区别确实让人疑惑. 类方法(@classmethod) 是一个函数修饰符,表是该函数是一个类方法 类方法第一个参数是cls,而实例方法 ...

随机推荐

  1. vue cli3.0配制axios代理

    今天学习时,想访问网易新闻接口,结果显而易见,因为跨域被浏览器拒绝了. 去网上找一下结果一开始找到的是2.x版本的配置,生硬的放进去,给我各种报错.编译阶段就炸了.浪费好多时间 再按3.0版本去搜索才 ...

  2. TEAMWORK1

    代码信息 队友:马司雨 队友项目:Prim算法生成最小生成树 codeing地址:这里 博客地址:那里 代码功能审查表 功能模块名称 Prim算法生成最小生成树 审查人 张洋 审查日期 2019.4. ...

  3. 闲记 单元格与单元格之间的边 ///字体属性都是font开头,除了颜色属性 ///文本属性都是text开的,除了设置行高。

    这两天一直在做网页没有什么太大的问题,期间也考了一场试,对答案的时候老师讲了一些小知识,因此来记录一下. 单元格与单元格之间的边距(cellspaling) list-type-image可以使用图像 ...

  4. KiCad 一款强大的 BOM 和 装配图生成插件

    KiCad 一款强大的 BOM 和 装配图生成插件 可以生成 BOM 和在线的图形. https://github.com/openscopeproject/InteractiveHtmlBom In ...

  5. adb和机顶盒一些常识

    1.adb install强制安装在SD卡 因为盒子/data/空间不够了.而默认apk就安装在了/data/目录下.因此需要更改默认安装位置 命令参照 进入adb shell $adb shell ...

  6. Mysql--基础(一)

    MySQL基础 一.数据库的操作 1.SQL分类: DDL(数据定义语言)   :数据定义语言 - Data Definition Language,用来定义数据库的对象,如数据表.视图.索引等.常用 ...

  7. my sql无法删除数据库

    mysql有时候会无法删除数据库,可以通过 1.select @@datadir 查询到文件目录 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Data\\' ...

  8. Jquery 一个页面单个倒计时 实现

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. @cacheevict 清除多个key

    @Caching(evict={@CacheEvict(“a1”),@CacheEvict(“a2”,allEntries=true)}): 参考:https://www.cnblogs.com/ha ...

  10. 蓝桥第八届省赛 javaB组承压计算

    X星球的高科技实验室中整齐地堆放着某批珍贵金属原料. 每块金属原料的外形.尺寸完全一致,但重量不同.金属材料被严格地堆放成金字塔形. 7 5 8 7 8 8 9 2 7 2 8 1 4 9 1 8 1 ...