https://juejin.im/post/5a238da56fb9a0450a6729ff
问题:对象直接有数据依赖。如何让一个对象的数据变化,及时通知到其他对象。 解决方案:数据对象持有其他所有对象的引用,双方协商数据交换方式。当数据对象数据变化,通过接口传入数据。 通过注册产生关联;通过回调传递数据。
https://juejin.im/post/5a238da56fb9a0450a6729ff
问题:对象直接有数据依赖。如何让一个对象的数据变化,及时通知到其他对象。 解决方案:数据对象持有其他所有对象的引用,双方协商数据交换方式。当数据对象数据变化,通过接口传入数据。 通过注册产生关联;通过回调传递数据。
要旨:业务场景是一个有限状态机,每种状态下都会有各自的、全套的业务逻辑。 为每种状态设计一个单独的类,实现基于此状态的全套业务逻辑。 特点:在进行业务处理的同时,自动切换状态。
https://design-patterns.readthedocs.io/zh_CN/latest/behavioral_patterns/command.html
要旨: 逻辑对象,方法很多。 客户端需要操作逻辑对象的方法。 将逻辑对象的方法,或者多个方法,封装到一个类中-命令类。即在该类中执行逻辑对象的各种方法。 客户端只需要创建对应的命令类即可。
为了解耦,又引入了代理层去触发逻辑对象-命令的调用。
handlers = {} | |
class CustomMetaclass(type): | |
def __new__(mcs, name, bases, attrs): | |
cls = type.__new__(mcs, name, bases, attrs) | |
for ext in attrs["formats"]: | |
handlers[ext] = cls | |
return cls |
from bs4 import BeautifulSoup | |
import re | |
html_doc = """ | |
<html> | |
<head><title>The Dormouse's story</title></head> | |
<body> | |
<p class="title"> |
import time | |
import functools | |
def timer(timer_id): | |
def decorator(func): | |
@functools.wraps(func) | |
def wrapper(*args, **kw): | |
print('%s %s():' % (timer_id, func.__name__)) | |
start_time = time.time() |
list = ['html', 'js', 'css', 'python'] | |
list = ['html', 'js', 'css', 'python'] | |
# 方法1 | |
print '遍历列表方法1:' | |
for i in list: | |
print ("序号:%s 值:%s" % (list.index(i) + 1, i)) | |
print '\n遍历列表方法2:' |
data = { 'k1': "v1", "k2": "v2" } | |
for key,value in data.items(): | |
pass | |
data.keys() | |
data.values() |
python a.py | |
会把 a.py 所在路径加入 sys.path 的第一个。 | |
sys.argv = ['/path/to/a.py'] |
A1&B1 | |
A1&","&B1 | |
concatenate(A1, ",", A2) | |