Python勉強_07

Python_07_20200221


变更履历

日期版本内容作者备注
2020/02/21v1.00初版做成author啥也不是

静态方法

class c1(object):
@staticmethod #相当于一个单纯方法
def func1(self):{#一般不需要类的参数
	print("name:"self.name)
}
c2=c1("c2name")
c2.func1(c2)

类方法

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

@classmethod
class c1(object):
n=111
def func2(self):
	print(self.n)

属性方法

class c3(object):
self.__name=None
@property #把一个方法变成一个静态属性
def func3(self):
	print(self.name)
@func3.setter #把这个属性赋值
def func3(self,name):
	print(self.name)
	self.__name=name
@func3.deleter #删除这个属性
def func3(self):
	del self.__food
c4=c3("c4name")
c4.func3 #直接调用

其他没什么用的方法

def __new__(cls,*args,**kwargs): #实例化类是通过__new__方法执行的
	return object.__new__(cls)
def __init__(self,arg):

反射

def bulk(self):
	print("%s is bulk %s" %(self.name,str))
class Dog(object):
	def __init__(self,name):
		self.name=name
	def eat(self):
		print("%s is eating %s" ,%(self.name,food))
d=Dog("taidi")
func=input("method:").strip()
if hasattr(d,func): #类中是否有func方法
	func1=getattr(d,func) #获取类中的func方法
	func1("gutou") #调用
	#delattr(d,func) #删除属性/方法
else:
	setattr(d,func,bulk) #把方法装配到实例化的类中
	#setattr(d,func,123) 把属性装配到实例化的类中/也可以给原属性赋值
	#getattr(d,func) 获取属性值
	d.func(d) #调用时要把实例类传入	

异常处理

try:
	#coding
except KeyError as e:
	print("KeyError",e)
except IndexError as e:
	print("IndexError",e)
except (KeyError,IndexError) as e: #合在一起写的
	#处理
except Exception as e: #所有的错误
 	#处理
else: #正常执行
	#处理
finally:
	#同java
'''
自己定义异常
'''
class myException(Exception):
	def __init__(self,msg):
		self.msg=msg

		
	
try:
	raise myException("我定义的异常")
except myException as e:
	print(e)

Socket网络编程

  • 网络协议
    • http,stmp,dns,ftp,ssh,snmp,icmp,dhcp
  • 本质
    • send–recevice
  • OSI七层模型
    • 应用-表示-会话-传输-网络(ip地址)-数据链路(mac地址)-物理层
  • TCP/IP
    • 三次握手,四次断开
      • A(syn synchronous建立联机) -B(syn+ack acknowledgement 确认)-A(ack)
      • A(你在不在?)
      • B(我在,你有啥事?)
      • A(我要和你通信)
      • A(fin m) B(ack) B(fin n) A(ack)
      • A(我要结束了)
      • B(我知道了)
      • B(我要关闭了)
      • A(我知道了)
      • B真实关闭
  • UDP
    • 无连接的传输协议,流媒体使用
      把基层的协议,封装起来使用:socket
客户端代码
import socket
client=socket.socket()
client.connect(('localhost',1010))
client.send(b"hello world")
data=client.recv(1024)
print("recv:",data)
client.close
服务端代码
import socket
server=socket.socket()
server.bind(('localhost',1010))
server.listen()
print("开始监听")
con,addr=server.accept()
print(con,addr)
print("监听中。。。。。")
data=con.recv(1024)
print("recv:",data)
con.send(data.upper())
server.close()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值