python继承

python-Flask模版注入攻击SSTI(python沙盒逃逸)

牧云@^-^@ 提交于 2019-12-01 07:25:55
一篇以python Flask 模版渲染为例子的SSTI注入教学~ 0x01 Flask使用和渲染 这里简化了flask使用和渲染的教程 只把在安全中我们需要关注的部分写出来 来一段最简单的FLASK运行代码: 很简单的flask使用 将url的qing和方法绑定 返回"qing - Flask test"字符串 说一下模版渲染Jinja2中变量 控制结构 {% %} 变量取值 {{ }} 注释 {# #} jinja2模板中使用 {{ }} 语法表示一个变量 ,它是一种特殊的占位符。当利用jinja2进行渲染的时候,它会把这些特殊的占位符进行填充/替换,jinja2支持python中所有的Python数据类型比如列表、字段、对象等 inja2中的 过滤器 可以理解为是 jinja2里面的内置函数和字符串处理函数。 被两个括号包裹的内容会输出其表达式的值 再来看看ssti中我们需要关注的渲染方法和模版 flask的渲染方法有 render_template 和 render_template_string 两种 render_template()用来渲染指定的文件: return render_template('index.html') render_template_string则是用来渲染字符串 html = '<h1>This is a String</h1>'

Python与JAVA的一些区别

眉间皱痕 提交于 2019-12-01 07:08:42
效率 :   作为静态语言的JAVA执行效率比动态型语言的Python高 语法 :   Python语句更精简。   JAVA中的所有变量需要先声明(类型),才能使用,Python不需要声明变量类型   Python3中的六个标准数据类型:     不可变数据:     可变数据: 可移植性 : 类库 :   面向对象 :   继承:     JAVA:只允许单继承     Python:允许多继承,一个子类可以有多个父类 应用领域 :   Python:游戏开发、搜索引擎、图形图像处理、脚本开发。   JAVA:服务器开发,web开发和安卓开发。 来源: https://www.cnblogs.com/swordsman180309/p/11666587.html

1011 笔记

与世无争的帅哥 提交于 2019-12-01 05:03:39
目录 组合 1.什么是组合 2.为什么要使用组合 3.如何使用组合 总结 封装 1.什么是封装 2.为什么要封装 3.如何封装 访问限制机制 1.什么是访问限制机制 2.访问限制的目的 接口 property 1.什么是property 2.为什么要用property 3.如何使用property 多态 1.什么是多态 2.多态的目的 3.如何实现 继承 抽象类abc 鸭子类型 1.什么是鸭子类型 组合 1.什么是组合 在一个类中以另外一个类的对象作为数据属性,称为类的组合。 继承是一个子类是一个父类的关系,而组合则是一个类有另一个类的关系。 组合就是一个类中使用到另一个类,从而把几个类拼到一起。组合的功能也是为了减少重复代码。 2.为什么要使用组合 组合的目的和继承一样,为了减少代码冗余 3.如何使用组合 # 定义父类 class people: def __init__(self,name,age): self.name = name self.age =age # 定义学生类 class teach(people): def __init__(self,name,age): super().__init__(name,age) # 定义老师类 class student(people): def __init__(self,name,age): super().__init_

10.11 总结

时光怂恿深爱的人放手 提交于 2019-12-01 04:55:19
一、组合 1.什么是组合 组合指的是一个对象中的属性,是另一个对象 2.为什么使用组合 组合目的和继承一样,为了减少代码冗余 3.如果使用组合 class People: def __init__(self,name,age,sex,year,month,day): self.name=name self.age=age self.sex=sex self.year=year self.month=month self.day=day def tell_birth(self): print(f''' ===出生年月日=== 年:{self.year} 月:{self.month} 日:{self.day} ''') class Teacher(People): def __init__(self,name,age,sex,year,month,day): super().__init__(name,age,sex,year,month,day) class Student(People): def __init__(self,name,age,sex,year,month,day): super().__init__(name,age,sex,year,month,day) stu1=Student('壮壮',59,'female',1960,11,11) stu1.tell

个人觉着Python语言语法太恶心了,一点都不简洁,有没有人有同感?

大城市里の小女人 提交于 2019-12-01 04:38:02
初学python,完全没有感觉到简洁,倒是觉着非常的不习惯,满屏幕的__xxx__,@staticmethod,@classmethod, 说是面向对象,结果写个类郁闷的要死,self写个不断。括号里面又是继承又是参数的,哎。打开一个文件,一眼看上去一头雾水。 个人感觉冒号可有可无,ruby没有冒号,人家的缩进也不错(其实end也可以删除) 用了这么多语言,感觉coffeescript是最优雅的,groovy是最方便的,python和scala是最恶心的,ruby中间吧。 要是python把语法改成coffeescript或者有关coffeepython就好了啊,也不失简洁 来源: oschina 链接: https://my.oschina.net/u/210210/blog/42447

Python系列之循环定时器

戏子无情 提交于 2019-12-01 03:28:54
近期在学习并使用Python开发一些小工具,在这里记录方便回忆,也与各位开始走上这条路的朋友共勉,如有不正确希望指正,谢谢! 开始使用定时器时,度娘了下有没好的例子,本人比较懒,希望能直接使用。确实找到了一些,但是大多只是很直白的代码,自己打算整理一下。 我选用了threading模块中的定时器,使用线程的优势就是可以不干扰现有进程的正常执行。首先我们看下源码: 很简单的封装加上对线程的继承,函数也就是运行和取消,并有案例说明 # The timer class was contributed by Itamar Shtull-Trauring def Timer(*args, **kwargs): """Factory function to create a Timer object. Timers call a function after a specified number of seconds: t = Timer(30.0, f, args=[], kwargs={}) t.start() t.cancel() # stop the timer's action if it's still waiting """ return _Timer(*args, **kwargs) class _Timer(Thread): """Call a function after

Python类和对象

烂漫一生 提交于 2019-12-01 03:00:47
在设计之初,Python 就被设计成支持面向对象的编程语言,因此 Python 完全能以面向对象的方式编程。而且 Python 的面向对象比较简单,它不像其他面向对象语言提供了大量繁杂的面向对象特征,它致力于提供简单、够用的语法功能。 正因为如此,在 Python 中创建一个类和对象都很容易。Python 支持面向对象的三大特征:封装、继承和多态,子类继承父类同样可以继承到父类的变量和方法。 面向对象相关术语 在系统学习面向对象编程之前,初学者要了解有关面向对象的一些术语。当和其他人讨论代码的时候,或者尝试查找我们遇到的问题的解决方案时,知道正确的术语会很有帮助。 面向对象相关术语 在系统学习面向对象编程之前,初学者要了解有关面向对象的一些术语。当和其他人讨论代码的时候,或者尝试查找我们遇到的问题的解决方案时,知道正确的术语会很有帮助。 面向对象中,常用术语包括: 类:可以理解是一个模板,通过它可以创建出无数个具体实例。比如,前面编写的 tortoise 表示的只是乌龟这个物种,通过它可以创建出无数个实例来代表各种不同特征的乌龟(这一过程又称为类的实例化)。 对象:类并不能直接使用,通过类创建出的实例(又称对象)才能使用。这有点像汽车图纸和汽车的关系,图纸本身(类)并不能为人们使用,通过图纸创建出的一辆辆车(对象)才能使用。 属性:类中的所有变量称为属性。例如,tortoise

Python3 类的继承

纵饮孤独 提交于 2019-12-01 02:59:06
目录 继承的基本概念 什么是继承 继承有什么用 如何实现继承 初识继承 寻找继承关系 如何寻找继承关系 实例演示 继承背景下的对象属性查找顺序 派生 新式类和经典类 钻石继承 通过继承实现修改json模块数据类型 继承的基本概念 什么是继承 继承指的是一种新建类的方法, 新建的类称之为子类或者派生类 子类继承的类叫做父类, 也称之为基类或者超类 类的特征: 子类可以继承父类的属性(特征和技能), 并且可以派生出自己的属性(特征和技能) 在Python中, 一个子类可以继承多个父类(多继承) 继承有什么用 继承的目的是减少代码的冗余(减少重复代码) 如何实现继承 在定义类时候, 通过 class 子类(父类): 实现继承 初识继承 下面我们就通过代码来实现继承 # 父类 class ParentClass1: pass # 父类 class ParentClass2: pass # 子类 单继承 class ChildClass1(ParentClass1): pass # 子类 多继承 class ChildClass2(ParentClass1, ParentClass2): pass 我们可以通过 __bases__ 方法来查看当前类继承的父类 # 查看当前类的父类 print(ChildClass1.__bases__) # (<class '__main__

Python 一些内置函数的总结~~~~

|▌冷眼眸甩不掉的悲伤 提交于 2019-12-01 02:46:34
1. type() 两种用法 a. 当传入参数为一个时,返回值为参数的类型 b. 当传入参数为三个时,type(name, bases, dict) name: 类名 bases: 继承父类的元组,可继承也可不继承 dict: 构成类属性和方法的键值对(方法在外部定义,直接引用). 返回一个类对象 class TestBasic(object): @staticmethod def parent(): print "this is parent method" def child(self): print "this is child method" test_property = {"name": "heihei", "child": child} Test = type("Test", (TestBasic,), test_property) test = Test() print test.name test.child() test.parent() 运行结果: heihei this is child method this is parent method   来源: https://www.cnblogs.com/scircumsky/p/11648760.html

Python-面向对象之继承

倖福魔咒の 提交于 2019-12-01 02:33:29
目录 面向对象的三大特性 继承(灵魂三拷问) 什么是继承? 为什么要继承 如何实现继承 寻找继承关系 如何寻找继承关系 抽象与继承 先抽象 再继承 继承的关系 继承下对象属性查找顺序 派生 什么是派生 子类派生新的属性并重用父类的属性 方式一: 方式二: 新式类与经典类 mro函数 钻石继承(菱形继承) 实战-通过继承实现修改json模块支持的数据类型 面向对象阶段最重要的知识点: 面向对象的三大特性 继承(组合) 封装 多态 继承(灵魂三拷问) 什么是继承? 继承指的是定义类的方法,新定义的类称之为子类或者派生类 子类继承的类叫做 父类 ,也叫基类/超类 继承的特性: 子类可以继承父类的属性(特征与技能) 并且可以派生出自己的属性(特征和技能) 在python中一个子类可以继承多个父类,其他语言只能继承一个父类 为什么要继承 减少代码的冗余(减少重复代码)。 如何实现继承 首先确定好谁是子类,谁是父类 在定义类时,子类(),()内写上父类名,实现继承 继承初体验: # 父类1 class ParentClass1: pass # 父类2 class ParentClass2: pass # 子类1 class SubClass1(ParentClass1): # 继承父类1 pass # 子类2 class SubClass2(ParentClass1,ParentClass2)