原创

【2019年1月2日】Python 2 和 Python 3之间的区别

温馨提示:
本文最后更新于 2019年01月20日,已超过 2,126 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我
  1. NameError: name 'StandardError' is not defined
    The goal for Python 3.0 is to require any class raised as an exception to derive from BaseException or some descendant of BaseException
    
    所以直接把StandardError改成BaseException就好了,也就是说StandardError 不再使用

2.windows更新 pip 的时候 python -m pip install --upgrade pip 出现错误:

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.

无法更新的时候,可以用Pycharm 更新 模块包
也许你会发现,你的pip 已经是最新的了

Requirement already up-to-date: pip in e:\worksoft\anaconda\lib\site-packages (18.1)

实践中 在 anaconda 中更新会出现问题,而在python的原始包中没有问题!


3.Pycharm下同一目录py文件不能相互调用

1.首先确保所在目录是Python Package而不是一般的New Stratch File

Python Package下有__init___.py或自己建空的__init___.py

2.pycharm不会将当前文件目录自动加入自己的sourse_path。右键make_directory as-->sources path将当前工作的文件夹加入source_path就可以了

4.如何获取 毫秒 时间?

import datetime
datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S.%f')

5.yield from writer.drain() 是干嘛的?

对于writer.drain()的用法,它会阻塞如果writerbuffer已经满了,如果没有满就写一点 刷新一点

6.关键词参数

    #和关键字参数**kw不同,命名关键字参数需要一个特殊分隔符*,*后面的参数被视为命名关键字参数。
    #如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收city和job作为关键字参数。
def personXianZhi(name, age, *, city="jiangsu", job="engiiner",ages="23"):
    print(name, ages, city, job)

    关键词参数中还有默认参数,即参数必须是key,然后可有可无,切顺序无关!
    比如:
print(personXianZhi('Jack', 24, city='Beijing', job='Engineer'))

print(personXianZhi('Jack', 24, ages="22",city='Beijing'))
都可以!

再比如:

class Application(MutableMapping[str, Any]):
    ATTRS = frozenset([
        'logger', '_debug', '_router', '_loop', '_handler_args',
        '_middlewares', '_middlewares_handlers', '_run_middlewares',
        '_state', '_frozen', '_pre_frozen', '_subapps',
        '_on_response_prepare', '_on_startup', '_on_shutdown',
        '_on_cleanup', '_client_max_size', '_cleanup_ctx'])

    def __init__(self, *,
                 logger: logging.Logger=web_logger,
                 router: Optional[UrlDispatcher]=None,
                 middlewares: Sequence[_Middleware]=(),
                 handler_args: Mapping[str, Any]=None,
                 client_max_size: int=1024**2,
                 loop: Optional[asyncio.AbstractEventLoop]=None,
                 debug: Any=...  # mypy doesn't support ellipsis
                 ) -> None:
        if router is None:
            router = UrlDispatcher()
        else:
            warnings.warn("router argument is deprecated", DeprecationWarning,
                          stacklevel=2)
        assert isinstance(router, AbstractRouter), router

调用:

 app = web.Application(loop=loop, middlewares=[
        logger_factory, response_factory
    ])
正文到此结束
本文目录