4.类属性和对象属性 类属性:定义在class内,函数外 对象属性:定义在构造函数的内部 演示:类和对象的关系 --> 生命周期 [注意]类加载早,对象加载晚 --> 晚的可以调用早的,早的不能调用晚的 类属性和对象属性 class Demo: #类属性 a=100 # def __init__(self,a): # self.a=a def __init__(self,b): #对象属性 self.b=b #实例化对象: d=Demo(200) print(d) 1).兑现估计可以调用对象属…
孤荷凌寒自学python第四十七天通用跨数据库同一数据库中复制数据表函数 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天打算完成的是通用的(至少目前操作四种数据库)在同一数据库内复制数据表的方法函数. 此设想最初我自我感觉都非常简单,然而事实是关系型数据库统一使用的sql语言在各家其实是完全不同的! 一.了解清楚了我目前研究的四种关系型数据库对同一数据库中数据表的复制操作的sql语句的异同也效果局限 (一)Access 数据库与mssql数据…
python进阶01 面向对象.类.实例.属性封装.实例方法 一.面向对象 1.什么是对象 #一切皆对象,可以简单地将“对象”理解为“某个东西” #“对象”之所以称之为对象,是因为它具有属于它自己的“特征”和“行为” 2.面向过程和面向对象 #面向过程指的是变量和函数.“散落”在各种文件中,或者在文件的各个位置,相互没有联系,函数与变量没有相关性,非常不利于维护,设计模式不清晰. #为此才有面向对象概念的诞生. #面向对象指的是相关的变量和函数都“封装”在对象里面,以对象为单位来管理代码.好处在…
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线教程的编写,以及yarn的翻译整理表示感谢. NeHe OpenGL第四十七课:CG顶点脚本 CG 顶点脚本 nVidio的面向GPU的C语言,如果你相信它就好好学学吧,同样这里也只是个入门.记住,类似的语言还有微软的HLSL,OpenGL的GLSL,ATI的shaderMonker.不要选错哦:)…
类的定义 共同属性,特征,方法者,可分为一类,并以名命之 class Abc: # class 定义类, 后面接类名 ( 规则 首字母大写 ) cls_name = '这个类的名字是Abc' # 在类里定义的变量 是 属性 print( Abc.cls_name ) Abc.binbin = '正在25班教室' # 可以通过 类名.属性名 = 属性值 给类添加属性 print( Abc.binbin ) ------>>>>> 这个类的名字是Abc 正在25班教室 类是一个独…
一.可变参数 定义函数时,有时候我们不确定调用的时候会传递多少个参数(不传参也可以).此时,可用包裹(packing)位置参数(*args),或者包裹关键字参数(**kwargs),来进行参数传递,会显得非常方便. 1.包裹位置传递 def send_sms(*args): # 可变参数,参数组 print('phones',args) def say(word): print(word) say(word='nihao') send_sms(110,138,119) say('nihao')…
@clssmenthod(类方法) 与 @staticmethod(静态方法) 与类下面的函数的区别: 1.@classmethod修饰的方法def name(cls)需要通过cls参数传递当前类本身. 2.@staticmethod修饰的方法def name()不需要传递参数他和普通的函数是一样的. 3.类下面的函数def name(self)需要再方法里面加个self参数隐式的传递当前类对象的本身. 1.@clssmenthod 的使用 class class_name(): c=12  #…
函数内部属性 函数内部有两个特殊的属性arguments和this.其中,arguments是类数组对象,包含传入函数中的所有值,这个arguments还有一个属性:callee,这个属性是一个指针,指向拥有arguments的函数.而this据以引用的是函数执行环境对象. function fib(n){ if(n = 1){ return 1; }else{ return n * arguments.callee(n - 1); } } //这里利用函数内arguments的callees属…
1.面向对象的三大特性:封装性.继承性.多态性 封装: 封装使用的领悟: 1).生活层面:食品.快递.计算机.明星... 2).计算机层面: ①.模块.类.函数... ②.属性数据的封装与隐藏 权限修饰符的概念: public(公共的,范围最大) protected(收保护的)default(默认,缺省) private(私有的,范围最小) python语言没有以上这些关键字: 对于python的属性私有化使用:__来实现 在设计完类,外界创建对象通过.的形式访问(设置)属性, 可能会出现跟现实…
1.动态给对象添加属性: 在对象创建完毕后,单独为其添加需要的属性:可以理解为:私人定制 [注意]: 添加的属性只有此对象能够使用,别的对象如果用了,直接报错; 2.构造函数/构造方法/构造器: 格式:__init__(self,...): 作用: 1).创建对象 2).为对象的属性赋值 [注意]: 1).构造函数也是函数,同样没有函数重载之说, 也就意味着,如果在一个类中出现多个同名的构造函数,最后一个覆盖之前所有的 2).如果人为不显示的定义构造函数,那么系统会默认提供给类一个空参数的构造,…
3.模块(m) 概念:在python中.py结尾的文件,我们就称为模块,可以将类.函数.属性...等内容定义在模块中 分类: 1).标准库模块:安装完python环境就有的模块,这些模块都是最常用的模块: 例如:random.os.os.path.math.... 2).第三方模块:别人写的有价值的代码(面向全世界),我们如果需要使用, 只需要通过pip安装即可 3).自定义模块:在项目开发过程中,团队中程序员自己定义的,可以给自己,也可以给别人调用 导入模块: 1).精确导入: 举例: imp…
输入流和输出流相对于内存 将外部设备的数据读取到内存中:输入 将内存中的数据写入外部设备中:输出 IO流经常使用基类 字节流的抽象基类:InputStream,OutputStream 字符的抽象基类:Reader.Writer PS:由这四个流派生出的子类都是以父类名作为后缀名 如:InputStream的派生类FileInputStream,Reader的派生类FileReader PS:假设是文字形式的数据应该优先考虑字符流,且将数据从内存写到硬盘上应该是Writer FileWriter…
组合1 #组合 1 class Hand: pass class Foot: pass class Trunk: pass class Head: pass class Person: def __init__(self, id_num, name): self.id_num = id_num self.name = name self.hand = Hand() self.foot = Foot() self.trunk = Trunk() self.head = Head() p1=Pers…
MyWeb框架: from wsgiref.simple_server import make_server def application(environ, start_response): print(environ) start_response('200 OK', [('Content-Type', 'text/html')]) return [b'<h1> Hello,web! </h1>'] httpd = make_server('',8080,application…
4).函数:findall(regex,string,[flags=0]): 参数: 和match.search一样理解 功能: 将所有匹配成功的子数据(子串),以列表的形式返回: 如果一个都没有匹配成功,那么返回一个空列表 compile()配合search()使用: pat=re.compile(r'www') matchobj=pat.search('www.sina.com!!www.baidu.com.com!!www') print(matchobj) 函数:findall(rege…
函数:search(regex,string,[flags=0]):参数:和match一样理解功能:从头开始匹配字符串中的数据,如果头不匹配继续往后尝试匹配,直到有第一个匹配成功的子数据,立即返回一个match对象:此时就算后面还有匹配的子数据,直接无视...当然匹配不成功,返回None值[注意]:由于search调用完毕之后返回的仍然是一个match对象,所以还是可以调用5个常用的函数 import re print(re.match(r'www','hahawww.baidu.com!!ww…
2).compile(regex,[flags=0]):返回一个Pattern对象(认为:它内部已经封装了一套regex和flags) 可以再通过Pattern对象继续调用match函数(此时只需要传递一个参数:string即可) 注意: 以上函数中涉及的参数:regex.flags.string和re.match中的参数一样理解…
函数:match(regex,string,[flags=0])参数:regex:就是正则表达式(定义了一套验证规则)string:需要被验证的字符串数据flags:模式/标志位,默认情况下(不定义) --> 不开启任何的模式功能:从头开始尝试匹配字符串数据(注意:如果开头就不匹配直接返回None值),如果匹配成功,那么就会返回一个match对象:如果匹配不成功,那么就会返回None值flags的取值:re.I:忽然大小写match对象有5个常用的函数:group():返回匹配成功的数据(原串中…
常用内置函数:round(): print(round(3.14),round(3.99)) print(round(3145.926,-2),round(413.575,2)) abs(): print(abs(-2),abs(-1),abs(0),abs(1),abs(2)) max().min().sum() print(max([1,2,3,4,5])) print(min([1,2,3,4,5])) print(sum([1,2,3,4,5])) 以下比较的是字符串中每个字符的asci…
Expression相当于工厂,这个工厂有各式各样的模型(函数),用来生成各种零部件(节点类型),最后组装成表达式树. Expressions这个命名空间有各种个容器用陈放生产出来的零部件. Expression 非常接近于类型Emit ,Emit就是直接 使用IL指令进行编程,它的最主要用途就是编译一个动态方法 ,恰好Expression 的主要作用 也是如此 ,可以把Expression编程看作是对Emit的一个简单的基于oo的封装,它们直接针对的更低层语言(IL)的接口,比如 Expres…
函数的参数是参数暴露给外部的接口,向函数传递参数,可以控制函数的流程,函数可以0个.1个或多个参数:在Python中向函数传参,使用的是赋值方式. 一,传递参数 参数是通过赋值来传递的,传递参数的特点是: 参数的传递是通过自动把对象赋值给函数的本地变量名来实现的, 在函数内部的变量名的赋值不会影响调用者,在函数运行时,在函数头部的参数名是一个新的.本地的变量名,这个变量名的作用域是在函数的本地作用域内. 改变函数的可变对象参数的值,会修改原始对象的值. 当通过赋值方式,把可变对象的引用传递给函数…
一.property 属性 特性 (装饰器是可调用对象,被装饰对象也是可调用对象)   1.在类内函数属性上添加一个@property,就会对函数属性进行伪装. import math class Circle: def __init__(self,radius): #圆的半径radius self.radius=radius @property def area(self): return math.pi * self.radius**2 #计算面积 @property def perimet…
介绍装饰器.继承.元类.mixin,四种給类动态添加类属性和方法的方式 有时候需要給类添加额外的东西,有些东西很频繁,每个类都需要,如果不想反复的复制粘贴到每个类,可以动态添加. # coding=utf-8 def create_class_attribution(cls): def _inner(*args, **kwargs): if not hasattr(cls, 'xx'): cls.xx = 1 def funa(self, a, b): return a + b if not h…
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我们称为客户端(cilent),一方我们称为服务端(server) 冲浪概念(上网),打开浏览器举例:访问百度页面 我们可以认为是浏览器的进程和百度服务器之间进行数据交互 IP: IP地址的作用: 如果我们需要上网,每台计算机都需要有一个唯一的识别号(标识),就需要用到ip的概念 [注意事项]: ip…
前言 关于对象的魔法方法我们已经讲得太多,但是对于类或函数内建的魔法属性和功能我们涉及较少,下面系统了解一下类和函数的内建属性. 查看内建属性 class Person(object): pass def get_name(): pass if __name__ == "__main__": person = Person() print(dir(get_name)) print(dir(Person)) print(dir(person)) # 结果 ['__annotations_…
 孤荷凌寒自学python第四十六天开始建构自己用起来更顺手一点的Python模块与类,尝试第一天 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 按上一天的规划,这是根据过去我自学其它编程语言的经验,我觉得对Python的肤浅的基础的知识学习完成之后,一定也要开始的构建自己的Python编程大厦的脚手架——开始将一些自己用起来顺手的常用功能封装块化,建立模块和类,形成一种基础沉淀,这样整个自己的Python学习大厦才将越修越好,这是从我过往的编程语言自学中总结出来的,今天经过第一天的尝…
一.面向对象 编程方式 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发“更快更好更强…” 什么是面向对象 面向对象就不像面向过程那样按照功能划分模块了,它所关注的是软件系统有哪些参与者,把这些参与者称为对象,找出这些软件系统的参与者也就是对象之后,分析这些对象有哪些特征.哪些行为,以及对象之间的关系,所以说面向对象的开发核心是对象 什么是类 面向对象编程的两个重要的概念:类和对象 类是对象的类型…
什么是对象和类 https://www.cnblogs.com/poloyy/p/15178423.html 什么是 Python 类.类对象.实例对象 https://www.cnblogs.com/poloyy/p/15178456.html 类变量.实例变量/类属性.实例属性 前言 只是叫法不一样 实例属性 = 实例变量 类属性 = 类变量 个人认为叫属性更恰当 类属性和实例属性区别 类属性,所有实例对象共享该属性 实例属性,属于某一个实例对象的属性,用于描述具体的对象 从实际栗子了解类属…
部分参考自:http://www.geekfan.net/7862/ 新式类与经典类 2和3不一样,3都是新式类. 新式类和经典类的区别: class A: #classic class """this is class A""" pass __slots__=('x','y') def test(self): # classic class test """this is A.test()""&…
global关键字 一句话概括为:告诉python解释器,global声明的变量为全局作用域内定义的变量.解释器就会到全局作用域内寻找global定义的变量. python的类属性 类属性相当于其他OO语言的类中的静态变量,定义在类中的属性为类的所有实例所共享. 类属性有两种访问方式:1.通过"类名.变量"的形式访问.2.通过"类实例对象.变量"访问. #!coding:utf8 class A(object): a = 1 def __init__(self):…