Arvon's Blog


  • 首页

  • 归档

  • 标签

  • 关于

关于对Python面向对象的理解

发表于 2019-09-10 | | 阅读次数:

说起面向对象(Object Oriented Programming)首先想到的就是三个词:封装、继承和多态。

封装:目的是为了简化编程和提升安全性(标识出允许外部使用的所有成员函数和数据项)。

  • 属性封装
  • 方法封装

继承和多态:顾名思义,继承就是子类可以获取父类的特性,实际上就是为了更好的进行代码复用,而多态是指基于不同的父类调用同一方法也可能有不同的执行逻辑,与这个相关的还有一个有趣的名词”鸭子模型“。

另外与面向对象对应的还有个面向过程(Process Oriented)。其中的区别下面有一个通俗的解释,可以做一个参考

面向对象是相对于面向过程的,比如你要充话费,你会想,可以下个支付宝,然后绑定银行卡,然后在淘宝上买卡,自己冲,这种种过程。但是对于你女朋友就不一样了,她是面向“对象”的,她会想,谁会充话费呢?当然是你了,她就给你电话,然后你把之前的做了一遍,然后她收到到帐的短信,说了句,亲爱的。这就是面向对象!女的思维大部分是面向“对象”的!她不关心处理的细节,只关心谁可以,和结果!

来源:知乎 链接

阅读全文 »

python中特殊方法和特殊变量总结

发表于 2019-09-01 | | 阅读次数:

在研究一些python项目的源码时经常会看到一些特殊的方法和变量,比如两边双下划线__init__定义的方法,还有一些类中会有以双下划线__开头定义的变量,以及以单下划线_开头的定义的变量。这里对目前经常遇到的做一个记录

__method__:在class中有一些以双下划线开头和结尾的函数被称为特殊方法(Magic Method),更具体可以参考 官方文档

顺便说一下访问限制。如下(限制其实并不严格,主要靠自觉)

__:在类内部如果使用双下划线开头定义变量,那么这个变量就变成了私有变量(private),即这个变量只有在内部访问(并不是绝对控制,可以通过其他方法访问)

_:在类内部如果使用_开头定义变量,其实表示建议(表示可以从外部访问但最好不要访问)当成私有变量

阅读全文 »

JenkinsActiveChoices插件使用

发表于 2019-08-30 | | 阅读次数:

之前使用过Jenkins的Active Choices Plugin插件,概述下当时我想实现的效果

  • 针对自定义选项支持多选
  • 在Job中点击构建是默认全部选中
  • 采用DSL构建
    所以当时调研后就选择了这个插件,使用起来还不错。不过今天又遇到一个问题,记录一下
    阅读全文 »

Flask中Jinja2模板使用总结

发表于 2019-08-28 | | 阅读次数:

之前已经总结过Jinja2了,这里主要总结在Falsk中的一些东西。包括以下方面

  • 模板的目录结构设计
  • 常用的模块
  • HTML转义
  • 特殊装饰器
阅读全文 »

Jinja2语法

发表于 2019-08-25 | | 阅读次数:

介绍

大概介绍一下,主要介绍模板(模板仅仅是文本文件。它可以生成任何基于文本的格式(HTML、XML、CSV、LaTex 等等)。它并没有特定的扩展名,.html或.xml都是可以的。)模板包含变量或表达式 ,这两者在模板求值的时候会被替换为值。模板中 还有标签,控制模板的逻辑。模板语法的大量灵感来自于 Django和Python。

Jinja2是一个现代的,设计者友好的,仿照Django模板的Python模板语言。它速度快,被广泛使用,并且提供了可选的沙箱模板执行环境保证安全.特征如下:

  • 沙箱中执行
  • 强大的HTML自动转义系统保护系统免受XSS
  • 模板继承
  • 及时编译最优的python代码
  • 易于调试。异常的行数直接指向模板中的对应行
  • 可配置的语法

—-选自 http://docs.jinkan.org

阅读全文 »

python中的*与**用法

发表于 2019-08-25 | | 阅读次数:

在Python中经常会见到以下一些用法,如在函数调用中fun1(*vars)|fun2(**vars),以及在函数定义中如def fun1(*param) or def fun2(**param)这些形式。下面就针对这些情况使用具体例子进行一下说明。

阅读全文 »

关于Cookie和Session以及Token的说明

发表于 2019-08-25 | | 阅读次数:

现在做web的话就绕不开安全认证这一步,那就先介绍下目前常见的认证方式然后再说关于cookie、session、token的东西。常用的认证方式简单概述如下:

  • cookie-session认证方式

    出现较早的认证方式,主要形式是浏览器客户端将用户名密码发送给服务器,服务器验证后创建session并发放用于识别用户的sessionID(与用户状态绑定后记录在服务器端),这个sessionID以及一些相关的其他信息就是cookie,cookie随着响应(Set-Cookie)返回给客户端由客户端存储于浏览器,之后客户端的请求都会带上这个cookie,服务端通过cookie来获取Session信息从而进行认证校验。

  • Oauth认证方式

    Oauth是一种授权机制,主要为第三方应用颁发授权令牌(token),目前有Oauth2.0和Oauth1.0版本,其中Oauth2.0版本的标准是RFC6749,Oauth1.0版本的标准是RFC5849。Oauth2.0的具体介绍可以参考阮一峰|Oauth2.0

  • JWT认证方式

    JWT的标准是RFC7519。大概原理是客户端经过服务器认证后服务器给客户端返回一个json对象(包含用户信息且加密处理的数据),之后客户端与服务器通信都会带上这个json对象,服务器只通过这个对象来认证用户,也就是说服务器端是无状态的不会保存状态数据了(比如session)。具体可参考阮一峰|JSON Web Token 入门教程

阅读全文 »
12…17
Arvon

Arvon

不要为了看别人而走错了自己脚下的路

118 日志
47 标签
GitHub Weibo
Links
  • Johnny
  • Timo
  • Litten
  • Liao
  • Frank
© 2014 — 2019 Arvon
由 Hexo 强力驱动
|
主题 — NexT.Mist v5.1.4