参考:@property NOTE 1.在绑定参数时,为了避免对属性不符合逻辑的操作,需要对传入的参数进行审核. #!/usr/bin/env python3 class MyClass(object): """docstring for MyClass""" def __init__(self): super(MyClass, self).__init__() def set_Attr(self, score): if score >=…
参考:OOP NOTE 1.面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 2.面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 3.面向对象的程序设计把计算机程序视为一组对象的集合,每个对象都可以接收其他对象发过来的消息,并处理这些消息,计算机程…
参考:继承和多态 NOTE 著名的开闭原则: 对扩展开放:允许新增Animal子类: 对修改封闭:不需要修改依赖Animal类型的Animal_func()等函数. 1.eg. #!/usr/bin/env python3 class Animal(object): """docstring for Animal""" def __init__(self): pass def run(self): print('Animal is running…
参考:类和实例 注意理解第七点. NOTE: 1.类是抽象的模板,比如Student类,实例是根据类创建出来的一个个具体的"对象",每个对象都拥有相同的方法,但各自的数据可能不同. 一个是抽象模板,一个是具体实例. class Student(object) pass Hint: Python中继承的方式 => 在类名之后加上([继承的类名]). 上述Student类继承于object类,这个是所有的类最终都会继承的类. 2.创建实例是通过类名+()实现的. 如果有__init_…
参考:使用元类 NOTE: type() 1.type()函数可以用于检查一个类或者变量的类型. #!/usr/bin/env python3 class Myclass(object): """docstring for Myclass""" def __init__(self): super(Myclass, self).__init__() def func(self): pass def main(): h = Myclass() pri…
Python学习-第三天-面向对象编程基础 类和对象 简单的说,类是对象的蓝图和模板,而对象是类的实例.这个解释虽然有点像用概念在解释概念,但是从这句话我们至少可以看出,类是抽象的概念,而对象是具体的东西.在面向对象编程的世界中,一切皆为对象,对象都有属性和行为,每个对象都是独一无二的,而且对象一定属于某个类(型).当我们把一大堆拥有共同特征的对象的静态特征(属性)和动态特征(行为)都抽取出来后,就可以定义出一个叫做"类"的东西. 访问可见性 在Python中,属性和方法的访问权限只有…
参考:获取对象信息 NOTE 1.type()函数可以用来判断对象的类型: >>> type(123) <class 'int'> >>> type('ABC') <class 'str'> >>> type(None) <class 'NoneType'> >>> type(abs) <class 'builtin_function_or_method'> 如果一个变量指向函数或者类,…
参考:多重继承 NOTE #!/usr/bin/env python3 class Animal(object): def __init__(self, name): self.name = name def getname(self): print(self.name) class Fly(object): def __init__(self): pass def getfly(self): print('could fly') class Bird(Animal, Fly): pass de…
参考:slots NOTE 1.动态语言灵活绑定属性及方法. #!/usr/bin/env python3 class MyClass(object): def __init__(self): pass def func(obj): print(obj.name, obj.age) def main(): h = MyClass() h.name = 'Chen' h.age = '20' func(h) if __name__ == '__main__': main() 给对象h绑定了属性na…
参考:实例属性和类属性 NOTE Python是动态语言,根据类创建的实例可以任意绑定属性. class Student(object): def __init__(self, name): self.name = name a = Student('Chen') a.score = 90 同时,也可以直接给类绑定一个属性: class Student(object): name = 'Student' 当我们定义了一个类属性后,这个属性虽然归类所有,但类的所有实例都可以访问到. >>>…
参考:访问限制 NOTE 1.eg. #!/usr/bin/env python3 class Student(object): """docstring for Student""" def __init__(self, name, age, city): self.__name = name self.__age = age self.__city = city def print_info(self): print(self.__name,…
参考:使用枚举类 NOTE #!/usr/bin/env python3 from enum import Enum def main(): Mouth = Enum('Mouth', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec')) for name, attr in Mouth.__members__.items(): print(name, '=>', attr, '=…
偏函数 NOTE 1.int()函数提供额外的base参数,默认值为10.如果传入base参数,就可以做N进制的转换: #!/usr/bin/env python3 import functools def main(): print(int(input(), base=2)) print(int(input(), base=16)) if __name__ == '__main__': main() sh-3.2# ./partial1.py 10 2 20 32 可以看到,后面的base指明…
虽然Python是解释性语言,但是它是面向对象的,能够进行对象编程. 一.如何定义一个类 在进行python面向对象编程之前,先来了解几个术语:类,类对象,实例对象,属性,函数和方法. 类是对现实世界中一些事物的封装,定义一个类可以采用下面的方式来定义: class className: block 注意类名后面有个冒号,在block块里面就可以定义属性和方法了.当一个类定义完之后,就产生了一个类对象.类对象支持两种操作:引用和实例化.引用操作是通过类对象去调用类中的属性或者方法,而实例化是产生…
类 面向对象编程 通过类获取一个对象的过程 - 实例化 类名()会自动调用类中的__init__方法 类和对象之间的关系? 类 是一个大范围 是一个模子 它约束了事务有哪些属性 但是不能约束具体的值 对象 是一个具体的内容 是模子的产物 它遵循了类的约束 同时给属性赋上具体的值 类有一个空间 存储的是定义在class中的所有名字 每一个对象又拥有自己的空间 通过对象名.__dict__就可以查看这个对象的属性和值 print(alex.name) # print(alex.dict['name'…
把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 一:封装(类内的事) 对于类的方法而言,对外只知道功能隐藏细节 假设我们要处理学生的成绩表,为了表示一个学生的成绩,面向过程的程序可以用一个dict表示: #面向程序 std1 = { 'name': 'Michael', 'score': 98 } std2…
一:定义类并创建实例 Python中定义类,通过class关键字,类名开头大写,参数列表为所继承的父类.如果没有需要明确继承的类,则继承object. 使用类来创建对象,只需 类名+() 形式即可,python中没有new创建对象的. class Person(object): pass xiaoming = Person() xiaohong = Person() 二:动态改变的类属性 Python可以在创建实例后,通过实例来添加属性.而不是直接在类中定义好所有属性,并且同一个类的不同对象,可…
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAkMAAAFGCAIAAADmfgziAAAgAElEQVR4nOx993vT1v7/93/5EEt2Eg…
参考: 函数式编程 高阶函数 Note A.函数式编程(Functional Programming)介绍 1.函数是Python内建支持的一种封装,我们通过一层一层的函数调用把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元.这一点和C语言是一致的. 2.计算机和计算的概念: a.在计算机的层次上,CPU执行的是加减乘除的指令代码,以及各种条件判断和跳转指令,所以,汇编语言是最贴近计算机的语言. b.计算则指数学意义上的计算,越是抽象的计算,…
参考:sorted NOTE 1.sorted,快速排序,时间复杂度O(nlogn)渐进最优. #!/usr/bin/env python3 L = [] for i in range(10): L.append(int(input())) SortedL = sorted(L) print(SortedL) 上例:sorted函数返回排序好的list. sh-3.2# ./sorted1.py -10 2 99 78 24 -100 92 33 12 63 [-100, -10, 2, 12,…
参考:map/reduce Note 1.map():map()函数接收两个参数,一个是函数,一个是Iterable.map将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回. #!/usr/bin/env python3 def f(x) : return x*x l = map(f, [1, 2, 3, 4, 5, 6, 7]) print(list(l)) sh-3.2# ./map1.py [1, 4, 9, 16, 25, 36, 49] l是map函数返回的一…
#动态创建类 # type(class_name, tuple_of_parent_class, dict_of_attribute_names_and_values), 第二个参数为继承关系,可以为空,第三个描述类应该具有的attribute #正常创建类 class TestClass2(object): attr = 1 def __init__(self,name): self.name = name def name(self): return self.name #动态创建类 def…
参考:输入和输出 I/O 1.print()函数 a.调用print()输出字符串有以下两种方式:(1)print('[字符串]') (2)print("[字符串]") b.调用print()输出多个字符串,在字符串之间加入",",当print函数遇到逗号时,输出一个空格:print('I', 'love', 'you!') 输出如下: I love you! c.print()函数可以输出合法数学表达式的计算结果,如:print('300 + 300 =', 30…
一.模板语言之自定义filter 自定义filter文件存放位置 模板中自定义函数 - 在已注册的app中创建一个名字叫 templatetags 文件夹 - 任意创建一个py文件 - 创建名字交 register 的Library类的对象 - 定义函数 from django.template import Library register = Library() # 调用示例:{{ "a1"|meikai:"n1,n2"}} # 参数最多2 # 可以做if的条件…
pymsql的使用 初识pymysql模块 先在数据库中创建一个用户信息表,里面包含用户的ID.用户名.密码 create table userinfo( uid int not null auto_increment primary key, username ), pwd ) )engine = innodb default charset=utf8; 增加一个用户的信息: insert into userinfo(username,pwd) values('jxson','a123');…
面向过程 VS 面向对象 面向过程 面向过程的程序设计把计算机程序视为一系列的命令集合,即一组函数的顺序执行.为了简化程序设计,面向过程把函数继续切分为子函数,即把大块函数通过切割成小块函数来降低系统的复杂度. 面向过程的程序设计的核心是过程(流水线式思维),过程即解决问题的步骤,面向过程的设计就好比精心设计好一条流水线,考虑周全什么时候处理什么东西. 优点是:极大的降低了写程序的复杂度,只需要顺着要执行的步骤,堆叠代码即可. 缺点是:一套流水线或者流程就是用来解决一个问题,代码牵一发而动全身.…
Python的高级应用(三)面向对象编程 本章学习要点: 面向对象编程介绍 面向对象与面向过程编程的区别 为什么要用面向对象编程思想 面向对象的相关概念 一.面向对象编程介绍 面向对象程序设计(英语:Object-oriented programming,缩写:OOP)是一种程序设计范型,同时也是一种程序开发的方法.对象指的是类的实例. 已经被证实的是,面向对象程序设计推广了程序的灵活性和可维护性,并且在大型项目设计中广为应用. 此外,支持者声称面向对象程序设计要比以往的做法更加便于学习,因为它…
Python第六章__class面向对象编程与异常处理 欢迎加入Linux_Python学习群  群号:478616847 目录: 面向对象的程序设计 类和对象 封装 继承与派生 多态与多态性 特性property 静态方法与类方法 异常处理 一.面向对象的程序设计 在Python中大家一定听过一句话,叫做一切皆对象,字典.序列.数字和字符串都是根据类来创建的,在python中面向对象(object)编程是python的 核心概念,类(class)最终解释了面向对象编程思想(OOP),同样类也是…
面向过程.函数式.面向对象 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象(Object Oriented Programming,OOP):对函数进行分类和封装,让开发“更快更好更强... 面向过程 是用一长段代码来实现指定功能,开发过程中最常见的操作就是粘贴复制,即:将之前实现的代码块复制到现需功能处. 函数式编程 增强代码的重用性和可读性 面向对象 面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对…
目录 Objective-C 基础教程第三章,面向对象编程基础知 0x00 前言 0x01 间接(indirection) 0x02 面向对象编程中使用间接 面向过程编程 面向对象编程 0x03 OC面向对象 术语 0x04 OC语言中的OOP @interface @implementation instantiation(实例化对象) 0x05 第三章小节 Objective-C 基础教程第三章,面向对象编程基础知 0x00 前言 书中的这章节主要是对零基础的人介绍面向对象编程的基础知识,一…