Skip to content

Instantly share code, notes, and snippets.

View ssdemajia's full-sized avatar
🐟
划水中

ss ssdemajia

🐟
划水中
View GitHub Profile
@ssdemajia
ssdemajia / python_socket.md
Last active April 9, 2018 02:02
Python socket编程

udp

首先是udp客户端:

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.sendto("lalala".encode("utf-8"),("127.0.0.1",9000))

socket.SOCK_DGRAM表示udp的数据报式通信,socket.AF_INET表示IPv4协议族。sendto是无连接的数据发送函数,在函数中第一个参数表示你的payload, 在python3中需要的是Bytes类型,所以需要将字符串encode编码为bytes,第二个参数是一个元组,分别是地址和端口号。

@ssdemajia
ssdemajia / clock_deco.py
Last active April 9, 2018 05:36
计算程序运行时间的装饰器
"""time.perf_counter()用于python3,如果实在python2中需要改为time.clock()"""
import time
import functools
def clock(func):
@functools.wraps(func)
def clocked(*args, **kwargs):
t0 = time.perf_counter()
result = func(*args)
elapsed = time.perf_counter() - t0
name = func.__name__
@ssdemajia
ssdemajia / coroutine.py
Created April 16, 2018 02:49
python协程
from functools import wraps
def coroutine(func):
"""
装饰器,用来预激活协程,协程用之前需要用next来激活
"""
@wraps(func)
def primer(*args, **kwargs):
gen = func(*args, **kwargs)
next(gen) # 激活
@ssdemajia
ssdemajia / bind.js
Created July 16, 2018 11:29
Javascript硬绑定函数
function bind(func, obj) {
return function() {
return func.apply(obj, arguments);
};
}
// 使用
// 比如一开始有一个函数
function foo(something) {
console.log(this.a, something);
return this.a + something;
@ssdemajia
ssdemajia / doublelinklist.py
Last active August 14, 2018 16:11
Python 双端链表实现
@ssdemajia
ssdemajia / index.html
Last active September 17, 2018 08:31
js实现拖拽功能
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="drag">
@ssdemajia
ssdemajia / index.html
Created September 17, 2018 10:27
使用flex、align-items、justify-content居中元素
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div class="container">
@ssdemajia
ssdemajia / selectAndShare.html
Created September 22, 2018 13:01
选取文字,然后分享
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
@ssdemajia
ssdemajia / index.html
Created September 25, 2018 10:42
Vue双向绑定实现
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
@ssdemajia
ssdemajia / LRU.py
Created September 28, 2018 08:29
Python 实现LRU结构,用得最少的最先被踢出去,时间复杂度O(1),内部使用双端队列
# coding:utf-8
class Node:
def __init__(self, prev=None, nex=None, val=None):
self.prev = prev
self.next = nex
self.val = val
class DoubleLinkList:
def __init__(self):