- 军军小站|张军博客
搜索到与相关的文章
Python

python面向对象 反射原理解析

一、静态方法(staticmethod)和类方法(classmethod)类方法:有个默认参数cls,并且可以直接用类名去调用,可以与类属×××互(也就是可以使用类属性)静态方法:让类里的方法直接被类调用,就像正常调用函数一样类方法和静态方法的相同点:都可以直接被类调用,不需要实例化类方法和静态方法的不同点:类方法必须有一个cls参数表示这个类,可以使用类属性静态方法不需要参数绑定方法:分为普通方法和类方法普通方法:默认有一个self对象传进来,并且只能被

系统 2019-09-27 17:46:06 1828

Python

Python深入学习之闭包

闭包(closure)是函数式编程的重要的语法结构。函数式编程是一种编程范式(而面向过程编程和面向对象编程也都是编程范式)。在面向过程编程中,我们见到过函数(function);在面向对象编程中,我们见过对象(object)。函数和对象的根本目的是以某种逻辑方式组织代码,并提高代码的可重复使用性(reusability)。闭包也是一种组织代码的结构,它同样提高了代码的可重复使用性。不同的语言实现闭包的方式不同。Python以函数对象为基础,为闭包这一语法结

系统 2019-09-27 17:45:47 1828

Python

深入浅析python继承问题

有如下的代码:classp1:def__init__(self,a,b):print("initinp1")self.a1=aself.b1=bself.f1()deff1(self):print("f1inp1")classc1(p1):def__init__(self,a,b,c=2):print("initinc1")p1.__init__(self,a,b)self.c1=cself.f1()deff1(self):print("f1inp2")c

系统 2019-09-27 17:38:39 1828

Python

Python 中 Meta Classes详解

接触过Django的同学都应该十分熟悉它的ORM系统。对于python新手而言,这是一项几乎可以被称作“黑科技”的特性:只要你在models.py中随便定义一个Model的子类,Django便可以:获取它的字段定义,并转换成表结构读取Meta内部类,并转化成相应的配置信息。对于特殊的Model(如abstract、proxy),还要进行相应的转换为没有定义objects的Model加上一个默认的Manager开发之余,我也曾脑补过其背后的原理。曾经,我认为

系统 2019-09-27 17:38:17 1828

Python

举例讲解Python中的算数运算符的用法

下表列出了所有Python语言支持的算术运算符。假设变量a持有10和变量b持有20,则:例子:试试下面的例子就明白了所有的Python编程语言提供了算术运算符:#!/usr/bin/pythona=21b=10c=0c=a+bprint"Line1-Valueofcis",cc=a-bprint"Line2-Valueofcis",cc=a*bprint"Line3-Valueofcis",cc=a/bprint"Line4-Valueofcis",cc=

系统 2019-09-27 17:38:13 1828

Python

python中函数传参详解

一、参数传入规则可变参数允许传入0个或任意个参数,在函数调用时自动组装成一个tuple;关键字参数允许传入0个或任意个参数,在函数调用时自动组装成一个dict;1.传入可变参数:defcalc(*numbers):sum=0forninnumbers:sum=sum+n*nreturnsum以上定义函数,使用如下:传入多个参数,calc(1,2,3,4)30#函数返回值传入一个列表,nums=[1,2,3]calc(*nums)#通过*将list中的元素作

系统 2019-09-27 17:38:04 1828

Python

在win和Linux系统中python命令行运行的不同

今天,在完成一个小的python习题,习题的主要内容是读取一个帮助模块,并保存到本地文件。知道是用pydoc进行模块的读取,但是在windows系统下,调用os模块之后,结果总是为空。核心语句:helpfile=os.popen('pydoc%s'%module).read()此语句在Linux下可以正常运行,结果正常。后来发现,在Windows下,该修改为:helpfile=os.popen('python-mpydoc%s'%module).read(

系统 2019-09-27 17:38:03 1828

Python

在Python的Django框架中获取单个对象数据的简单方法

相对列表来说,有些时候我们更需要获取单个的对象,``get()``方法就是在此时使用的:>>>Publisher.objects.get(name="Apress")这样,就返回了单个对象,而不是列表(更准确的说,QuerySet)。所以,如果结果是多个对象,会导致抛出异常:>>>Publisher.objects.get(country="U.S.A.")Traceback(mostrecentcalllast):...MultipleObjectsRe

系统 2019-09-27 17:37:47 1828

Python

Python 跳出循环

break负责跳出整个循环>>>foriinrange(10):...ifi%2!=0:...break...else:...print(i)...0注意:但是break只能跳出一层循环,如果程序中有两个循环,第二个循环嵌套在第一个循环中,如果第二个循环被break,那么第一个循环会继续执行。Python不支持一次跳出多个循环。continue是跳出本次循环,继续下一次循环。>>>foriinrange(10):...ifi%2!=0:...continu

系统 2019-09-27 17:37:45 1828

Python

在Python的Django框架中包装视图函数

我们最终的视图技巧利用了一个高级python技术。假设你发现自己在各个不同视图里重复了大量代码,就像这个例子:defmy_view1(request):ifnotrequest.user.is_authenticated():returnHttpResponseRedirect('/accounts/login/')#...returnrender_to_response('template1.html')defmy_view2(request):ifno

系统 2019-09-27 17:37:44 1828