Quantcast
Channel: CodeSection,代码区,Python开发技术文章_教程 - CodeSec
Browsing all 9596 articles
Browse latest View live

Python的Django中将文件上传至七牛云存储的代码分享

最近在写的一个django小项目需要实现用户上传图片的功能,使用到了七牛云存储,特此记录下来。这里我使用的七牛python SDK...

View Article


详解duck typing鸭子类型程序设计与Python的实现示例

在程序设计中,鸭子类型(英语:duck typing)是动态类型的一种风格。在这种风格中,一个对象有效的语义,不是由继承自特定的类或实现特定的接口,而是由当前方法和属性的集合决定。这个概念的名字来源于由James Whitcomb...

View Article


详解字典树Trie结构及其Python代码实现

字典树(Trie)可以保存一些字符串->值的对应关系。基本上,它跟 Java 的 HashMap 功能相同,都是 key-value 映射,只不过 Trie 的 key 只能是字符串。Trie 的强大之处就在于它的时间复杂度。它的插入和查询时间复杂度都为 O(k) ,其中 k 为 key 的长度,与 Trie 中保存了多少个元素无关。Hash 表号称是 O(1) 的,但在计算 hash...

View Article

Python中的descriptor描述器简明使用指南

当定义迭代器的时候,描述是实现迭代协议的对象,即实现__iter__方法的对象。同理,所谓描述器,即实现了描述符协议,即__get__, __set__, 和 __delete__方法的对象。单看定义,还是比较抽象的。talk is cheap。看代码吧:class WebFramework(object): def __init__(self, name='Flask'): self.name =...

View Article

Python黑魔法Descriptor描述符的实例解析

在python中,访问一个属性的优先级顺序按照如下顺序:1:类属性2:数据描述符3:实例属性4:非数据描述符5:__getattr__()方法  这个方法的完整定义如下所示:def __getattr(self,attr) :#attr是self的一个属性名 pass;...

View Article


Image may be NSFW.
Clik here to view.

深入理解Python变量与常量

变量是计算机内存中的一块区域,变量可以存储规定范围内的值,而且值可以改变。基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。常量是一块只读的内存区域,常量一旦被初始化就不能被改变。变量命名字母、数字、下划线组成,不能以数字开头,前文有说不在赘述。变量赋值python中的变量不需要声明,变量的赋值操作即是变量的声明和定义的过程。每个变量在内存中创建都包括变量的标识、名称、和数...

View Article

Python中的Descriptor描述符学习教程

Descriptor是什么?简而言之,Descriptor是用来定制访问类或实例的成员的一种协议。额。。好吧,一句话是说不清楚的。下面先介绍一下python中成员变量的定义和使用。我们知道,在Python中定义类成员和C/C++相比得到的结果具有很大的差别。如下面的定义: class Cclass { int I; void func(); }; Cclass...

View Article

从源码解析Python的Flask框架中request对象的用法

from flask import requestFlask 是一个人气非常高的python Web框架,笔者也拿它写过一些大大小小的项目,Flask 有一个特性我非常的喜欢,就是无论在什么地方,如果你想要获取当前的request对象,只要 简单的:从当前request获取内容: method: 起始行,元数据 host: 起始行,元数据 path: 起始行,元数据 environ: 其中的...

View Article


Python搭建APNS苹果推送通知推送服务的相关模块使用指南

APNS 是苹果为IOS设备提供的推送服务,全称是(Apple Push Notification service)。 如果你有接触移动互联网相关的开发的话,应该对它很熟悉。接下来我会给大家简单介绍一下python下的一些APNS相关的模块以及其特点。模块介绍:PyAPNs项目地址:...

View Article


Python的Django框架中使用SQLAlchemy操作数据库的教程

零、SQLAlchemy是什么?SQLAlchemy的官网上写着它的介绍文字:SQLAlchemy is the python SQL toolkit and Object Relational Mapper that givesapplication developers the full power and flexibility of SQL.SQLAlchemy...

View Article

实例解析Python中的__new__特殊方法

__new__ 方法是什么?如果将类比喻为工厂,那么__init__()方法则是该工厂的生产工人,__init__()方法接受的初始化参 数则是生产所需原料,__init__()方法会按照方法中的语句负责将原料加工成实例以供工厂出货。而 __new__()则是生产部经理,__new__()方法可以决定是否将原料提供给该生产部工人,同时它还决定着出...

View Article

详解Python中的__new__、__init__、__call__三个特殊方法

__new__: 对象的创建,是一个静态方法,第一个参数是cls。(想想也是,不可能是self,对象还没创建,哪来的self)__init__ : 对象的初始化, 是一个实例方法,第一个参数是self。__call__ : 对象可call,注意不是类,是对象。先有创建,才有初始化。即先__new__,而后__init__。上面说的不好理解,看例子。1.对于__new__class...

View Article

Python实现优先级队列结构的方法详解

最简单的实现一个队列至少满足2个方法,put和get.借助最小堆来实现.这里按"值越大优先级越高"的顺序.#coding=utf-8 from heapq import heappush, heappop class PriorityQueue: def __init__(self): self._queue = [] def put(self, item, priority):...

View Article


Ruby中钩子方法的运用实例解析

通过使用钩子方法,可以让我们在Ruby的类或模块的生命周期中进行干预,可以极大的提高编程的灵活性。与生命周期相关的钩子方法有下面这些:类与模块相关 Class#inherited Module#include Module#prepended Module#extend_object Module#method_added Module#method_removed...

View Article

Image may be NSFW.
Clik here to view.

Ruby on Rails中Rack中间件的基础学习教程

rack是ruby服务器和rack应用程序之间的一个框架,rails,sinatra都是基于rack构建的,都属于rack应用程序。rack提供了一个标准的接口,用于与服务器进行交互。标准的rack程序是一个可以响应call的对象,可以是对象、Proc、lambda甚至是method,它接收env参数(环境对象),返回一个数组,数组包括: 状态(status),http响应状态码...

View Article


实例讲解Ruby中的钩子方法及对方法调用添加钩子

钩子方法有些类似事件驱动装置,可以在特定的事件发生后执行特定的回调函数,这个回调函数就是钩子方法(更形象的描述:...

View Article

Ruby面向对象编程中类的方法与类的扩展

类方法类方法其实质是生活在该类的单件类中的单件方法。其定义方法有三种,分别是:# 法一def MyClass.a_class_method; end# 法二class MyClass def self.anther_class_method; endend# 法三*class MyClass class << self def yet_another_class_method; end...

View Article


详解Ruby中的单件方法和单件类

单件方法Ruby允许给单个对象增加方法,这种只针对单个对象生效的方法,称为单件方法示例代码str = “just a regular string”def str.title? self.upcase == selfendstr.title? # => falsestr.methods.grep(/title?/) # => [:title?]str.singleton_methods...

View Article

Ruby环境下安装使用bundler来管理多版本的gem

有了rbenv来管理多版本的ruby环境,我们还需要一个能管理多版本gem(比如rails)的工具,那就是bundler了,项目背景不细说了,需要了解的直接到官网http://bundler.io/,这里只讲一些实际使用经验。安装gem install bundler使用mkdir app1; cd app1;echo "source 'https://ruby.taobao.org/'" >...

View Article

浅谈Ruby on Rails下的rake与数据库数据迁移操作

不知道你有没有把数据迁移写入Migration文件的经历,相信无论是老鸟还是新手都这样干过吧。事实上,这样做并不是行不通,只不过这样的实践慢慢会给你引入一些不必要的麻烦。一般认为db/migrate文件夹里的内容是关于你数据库Schema的演变过程,每个新的开发或线上环境都要通过这些Migration来构建可用的数据库。但如果这里装入了,负责细节的业务代码,比如一些历史遗留数据的迁移代码之类的,当一...

View Article
Browsing all 9596 articles
Browse latest View live