Skip to main content

24 posts tagged with "笔记"

View All Tags

· One min read

Title: 思维实验室 推荐

黄金时代

赫兹

  • 1887 年证实了电磁波。
  • 不到 37 岁卒。

以太 (伪科学定论)

胡克 - 惨

光的两个实验

  • 双缝干涉(杨)
  • 圆盘衍射(菲涅尔)

麦克斯韦的电磁波(光被划为其中)

· One min read

Title: mac VSCode 更新失败,提示 Permission denied 解决办法

1. 针对右下提示如下

Could not create temporary directory: Permission denied

解决办法

  1. 完全关闭 VSCode

  2. 终端输入

    sudo chown -R $USER ~/Library/Caches/com.microsoft.VSCode.ShipIt/
    xattr -dr com.apple.quarantine /Applications/Visual\ Studio\ Code.app
  3. 完成

多去 VSCode 底下的提交问题

原issues地址 Github地址

· 2 min read

Title: 记录下自己经常上网查的命令。

Nginx

  • 查看是否还在运行

ps -ef|grep nginx

  • 重启

    1. 验证 nginx.conf 是否正确。 nginx -t
    2. 重启服务 nginx -s reload

macOS

安装 rvm

  1. 安装 rvm , 一个基于 ruby 的工具库?

    curl -L get.rvm.io | bash -s stable

  2. 安装好 rvm 之后

    source ~/.bashrc
    source ~/.bash_profile
  3. 测试安装是否正常

    rvm -v

  4. 查看当前 ruby 版本

    ruby -v

  5. 列出已知的 ruby 版本

    rvm list known

  6. 安装 ruby

    rvm install x.x.x

  7. 升级 gem

    sudo gem update --system

SSH

  1. 查看本地是否生成了 SSH

    ls -al ~/.ssh

  2. 生成新的 SSH key

    ssh-keygen -t rsa -C "i.zuucol@gmail.com"

  3. 查看公钥

    cat ~/.ssh/id_rsa.pub

提示安装文件损坏

sudo spctl --master-disable

cocoapod 更新

pod install --verbose --no-repo-update pod update --verbose --no-repo-update

Xcode 无法被检测到时

sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer

· 4 min read

Title: Bilibili

P8

  • 使用字符串来导入类
__import__(name, globals=None, locals=None, fromlist=(), level=0)
  • config 的配置文件路径默认在根目录下,需要更改目录的话,要查看对应的Api文档。

P9

  • __name__ 函数调用的话,可以获取这个函数的名称。

P18

  • 怎么用父类去约束子类必须实现某方法,意指接口(interface)。
class Base(object):
def play():
raise NoImplementedError('必须实现该方法')
  • 顺带一提 P18 这一讲当中大概是 20 几分钟左右讲到的配置去做某事的思路对我启发蛮大。并且有助于理解 Django 的中间件。

  • 装饰器可以有多个,下面的会和被装饰的函数当成 inner 加入到上层的装饰器当中去。

  • endpoint 的意义目前理解为 id

P19

  • 利用 functools.wraps() 来帮助我们设置函数的元信息
import functools

def wapper(func):
@functools.wapper(func) # 保存元信息
def inner(*args, **kw):
return func(*args, **kw)
return inner

@wapper
def foo():
pass

print(foo.__name__)

'''
如果不设置元信息的话,会导致打印的是 inner
设置之后才可以确定是原先的函数
'''

P20

  • 闪现:类似于暂时存储部分内容的快照,取出来就没了。(阅后即焚)

    应用场景:对临时数据的操作,例如错误信息。

  • 请求扩展,指的是在请求之前和响应之前的监听,可以有多个监听,请求之前的监听是顺序执行,响应的是倒序执行。

    @app.before_request
    def before_request_1(*args, **kw):
    print("before_request_1 进来了")

    @app.before_request
    def before_request_2(*args, **kw):
    print("before_request_2 进来了")

    @app.after_request
    def after_request_1(response):
    print("after_request_1 走了")

    @app.after_request
    def after_request_2(response):
    print("after_request_2 走了")

    '''
    打印顺序为
    before_request_1 进来了
    before_request_2 进来了
    ...
    after_request_2 走了
    after_request_1 走了
    '''

    如果请求拦截之后,在他之后的请求就不会执行了,但响应的还是会继续执行。

  • 根据状态码定义错误信息

    @app.errorhandler(404)
    def error_404(args):
    return "404页面没找到"
  • before_first_request 第一个请求

    @app.before_first_request
    def first(*args, **kw):
    ## 连接数据库之类的
    pass

P22

  • 中间件的讲解 P22

P25

  • threading.local() 给每个线程开辟一个内存空间用以对应的线程执行相应操作。达到类似加锁的目的。

P36

  • 数据的链接池库采用 DBUtils ,但如果使用的是 PooledDB 模式的话,其中有个参数需要注意 maxshared : 链接池中最多共享的链接数量。0 为全部共享,但这个值设置的时候是由 creatorthreadsafety 来判别的,也就是说设置后不一定会生效。

· One min read

Title: 第三版

  • 10.1 生成器

查看一个函数是否是生成器 isgeneratorfunction()

import inspect

inspect.isgeneratorfunction(foo)

获取生成器的当前状态 getgeneratorstate()

  1. GEN_CREATED 等待被第一次执行
  2. GEN_RUNNING 正在被执行
  3. GEN_SUSPENDED 等待被 next() 调用
  4. GEN_CLOSED 结束运行