python阅读代码有助于养成优秀的代码风格

发布时间:2022-04-21 09:37:12 人气:171 作者:多测师

  “优秀的代码不需要文档”,这句话虽然说的有些夸张的成份,但是也并无一定道理。优秀的项目中的代码,注释占的比重是相当大的。比方tornado框架中的代码:

  class HTTPServer(TCPServer, Configurable,

  httputil.HTTPServerConnectionDelegate):

  r"""A non-blocking, single-threaded HTTP server.

  A server is defined by a subclass of `.HTTPServerConnectionDelegate`,

  or, for backwards compatibility, a callback that takes an

  `.HTTPServerRequest` as an argument. The delegate is usually a

  `tornado.web.Application`.

  `HTTPServer` supports keep-alive connections by default

  (automatically for HTTP/1.1, or for HTTP/1.0 when the client

  requests ``Connection: keep-alive``).

  If ``xheaders`` is ``True``, we support the

  ``X-Real-Ip``/``X-Forwarded-For`` and

  ``X-Scheme``/``X-Forwarded-Proto`` headers, which override the

  remote IP and URI scheme/protocol for all requests. These headers

  are useful when running Tornado behind a reverse proxy or load

  balancer. The ``protocol`` argument can also be set to ``https``

  if Tornado is run behind an SSL-decoding proxy that does not set one of

  the supported ``xheaders``.

  To make this server serve SSL traffic, send the ``ssl_options`` keyword

  argument with an `ssl.SSLContext` object. For compatibility with older

  versions of Python ``ssl_options`` may also be a dictionary of keyword

  arguments for the `ssl.wrap_socket` method.::

  ssl_ctx = ssl.create_default_context(ssl.Purpose.CLIENT_AUTH)

  ssl_ctx.load_cert_chain(os.path.join(data_dir, "mydomain.crt"),

  os.path.join(data_dir, "mydomain.key"))

  HTTPServer(applicaton, ssl_options=ssl_ctx)

  `HTTPServer` initialization follows one of three patterns (the

  initialization methods are defined on `tornado.tcpserver.TCPServer`):

  1. `~tornado.tcpserver.TCPServer.listen`: simple single-process::

  server = HTTPServer(app)

  server.listen(8888)

  IOLoop.current().start()

  In many cases, `tornado.web.Application.listen` can be used to avoid

  the need to explicitly create the `HTTPServer`.

  2. `~tornado.tcpserver.TCPServer.bind`/`~tornado.tcpserver.TCPServer.start`:

  simple multi-process::

  server = HTTPServer(app)

  server.bind(8888)

  server.start(0) # Forks multiple sub-processes

  IOLoop.current().start()

  When using this interface, an `.IOLoop` must *not* be passed

  to the `HTTPServer` constructor. `~.TCPServer.start` will always start

  the server on the default singleton `.IOLoop`.

python阅读代码有助于养成优秀的代码风格

  3. `~tornado.tcpserver.TCPServer.add_sockets`: advanced multi-process::

  sockets = tornado.netutil.bind_sockets(8888)

  tornado.process.fork_processes(0)

  server = HTTPServer(app)

  server.add_sockets(sockets)

  IOLoop.current().start()

  The `~.TCPServer.add_sockets` interface is more complicated,

  but it can be used with `tornado.process.fork_processes` to

  give you more flexibility in when the fork happens.

  `~.TCPServer.add_sockets` can also be used in single-process

  servers if you want to create your listening sockets in some

  way other than `tornado.netutil.bind_sockets`.

  .. versionchanged:: 4.0

  Added ``decompress_request``, ``chunk_size``, ``max_header_size``,

  ``idle_connection_timeout``, ``body_timeout``, ``max_body_size``

  arguments. Added support for `.HTTPServerConnectionDelegate`

  instances as ``request_callback``.

  .. versionchanged:: 4.1

  `.HTTPServerConnectionDelegate.start_request` is now called with

  two arguments ``(server_conn, request_conn)`` (in accordance with the

  documentation) instead of one ``(request_conn)``.

  .. versionchanged:: 4.2

  `HTTPServer` is now a subclass of `tornado.util.Configurable`.

  """

  def __init__(self, *args, **kwargs):

  # Ignore args to __init__; real initialization belongs in

  # initialize since we're Configurable. (there's something

  # weird in initialization order between this class,

  # Configurable, and TCPServer so we can't leave __init__ out

  # completely)

  pass

  上面的注释包含了:类的说明、例子、版本主要改动。

  优秀的代码风格:看到名字就能知道它是用来干什么的(顾名思义)、结构清晰、代码风格统一(命名规则、格式)

  这些优秀的特质都是为了:可读性、容易理解。正如:代码主要是给人看的,让计算机运行是次要的

  如果是在阅读了不好的代码,如果你心里在骂:“这代码简直是一坨

  所以,自己的优秀的编码风格也是成为一个合格的程序员必备的一项技能(面试要求会有这一项),通过阅读代码学习,模仿优秀的代码风格,有助于自己写出‘漂亮’、整洁的代码。

  以上内容为大家介绍了python阅读代码有助于养成优秀的代码风格,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注多测师。https://www.e70w.com/xwzx/


返回列表
在线客服
联系方式

热线电话

17727591462

上班时间

周一到周五

二维码
线