python 高级语法
#coding:utf-8 #定义一个装饰器函数
def doc_func(func): #包裹函数(闭包)
def warpfunc():
#做一些额外的事情
print "%s called" %(func.__name__)
func() return warpfunc @doc_func
def foo():
print "hello" @doc_func
def bar():
print "nihao" if __name__== "__main__":
foo() bar()
Ace 10:38:59 (多人发送)
#coding:utf-8 class Student:
'''学生类'''
def __init__(self, name, age):
'''构造函数init'''
print "__init__ ..."
self.name = name
self.age = age #python中的成员方法 一定要有个形参 self,表示调用该方法的对象本身 def showMe(self):
'''普通成员方法'''
print "showMe()..."
print self.name
print self.age def __del__(self):
'''析构函数'''
print "__del__..." if __name__ == "__main__":
s1 = Student("zhang3", 18)
s1.showMe() s2 = Student("li4", 20)
s2.showMe()
Ace 10:55:01 (多人发送)
#coding:utf-8 class Student:
'''学生类''' #如果一个变量 直接定义在类里面,而不是某个 成员变量里
#而且没有self, 这个变量是数据类的变量(对应c++就是静态成员变量)
school = "itcast" def __init__(self, name, age):
'''构造函数init'''
print "__init__ ..."
self.name = name
##如果给以普通成员变量+ __age 表示私有
self.__age = age #python中的成员方法 一定要有个形参 self,表示调用该方法的对象本身 def showMe(self):
'''普通成员方法'''
print "showMe()..."
print self.name
print self.__age
print Student.school def getAge(self):
return self.__age def __del__(self):
'''析构函数'''
print "__del__..." if __name__ == "__main__":
s1 = Student("zhang3", 18)
s1.showMe()
print s1.getAge() print "*"*20
s2 = Student("li4", 20)
s2.showMe() print "*"*20
Student.school = "itheima"
s1.showMe()
Ace 11:23:47 (多人发送)
#coding:utf-8 class Student: #静态成员变量
age = 18 def __init__(self, name, age):
self.name = name #对象方法
def showme(self):
#对象变量
print self.name
print Student.age #这个方法是一个类的方法,(静态的方法)
#类方法
@classmethod
def showme2(cls):
#类变量
print cls.age if __name__=="__main__":
s1 = Student("zahng3", 18)
s1.showme()#普通方法 #python调用静态成员方法
Student.showme2()
Ace 11:36:34 (多人发送)
#coding:utf-8 class Person:
'''人类''' def __init__(self, name):
'''人类的构造函数'''
print "Person __init___"
self.name = name def show(self):
'''人类的show()'''
print "Person showme()"
print self.name class Student(Person):
'''学生类''' def __init__(self, name, age):
#c++中 如果子类继承父类,调用子类的构造,会自动调用父类构造o
#python中并不是这样,需要手动调用父类构造函数,来初始化继承过来的变量
Person.__init__(self, name)
print "Student __init___"
self.age = age def show(self):
print "Student showme()"
print self.name
print self.age if __name__=="__main__":
s1 = Student("zhang3", 18)
s1.show() p1 = Person("li4")
p1.show()
Ace 11:59:57 (多人发送)
#coding:utf-8
#import test20#将test20 模块中的全部方法 和类 全部引入到此文件中
#但是使用的时候需要加test20.func1 #from test20 import func1 #仅仅引入其中一个方法 要保证此方法 在其他模块没有重名,
#from test20 import func2
from test20 import * func1()
func2()
python 高级语法的更多相关文章
- Python高级语法之:一篇文章了解yield与Generator生成器
Python高级语法中,由一个yield关键词生成的generator生成器,是精髓中的精髓.它虽然比装饰器.魔法方法更难懂,但是它强大到我们难以想象的地步:小到简单的for loop循环,大到代替多 ...
- Python高级语法总结
1.Python面向对象 创建类 使用class语句来创建一个新类,class之后为类的名称并以冒号结尾,如下实例: class ClassName: '类的帮助信息' #类文档字符串 class_s ...
- 网络编程-Python高级语法-装饰器
理论:装饰器就是运行一个函数之前首先运行装饰器函数,python装饰器就是用于拓展原来函数功能的一种函数,这个函数的特殊之处在于它的返回值也是一个函数,使用python装饰器的好处就是在不用更改原函数 ...
- 网络编程-Python高级语法-property属性
知识点: 一.什么是property属性? 一种用起来像是使用的实例属性一样的特殊属性,可以对应于某个方法,Python的property属性的功能是:property属性内部进行一系列的逻辑计算,最 ...
- 网络编程-Python高级语法-GIL全局解释器锁
知识点:GIL全局解释器锁其实和Python没有任何关系,是由于当初编写Python解释器时留下的,它只对多线程有影响,GIL保证同一时刻只有一个线程在运行,即使是多核配置电脑,同一时刻也只会让一个线 ...
- python高级语法进阶
python中几个比较难懂概念进阶. 迭代器 实现了迭代器协议的容器对象,基于如下两个方法: __next__:返回容器的下一个元素 __iter__:返回迭代器本身 由此可见,如果要自定义一个迭代器 ...
- Python高级语法-贯彻回顾-元类(4.99.1)
@ 目录 1.为什么要掌握元类 2.正文 关于作者 1.为什么要掌握元类 在django中编写models的时候遇到了元类的相关操作 并且在mini-web框架编写的时候也遇到了相关的问题 意识到深入 ...
- Python高级语法-对象实例对象属性-类与实例,class方法静态方法等(4.6.1)
@ 目录 1.说明 2.代码 关于作者 1.说明 python中属性:类属性,实例属性 方法:类方法,实例方法,静态方法 想修改类属性,只能是类方法,因为只有类方法把cls(类)传入数据里面 静态方法 ...
- 网络编程-Python高级语法-闭包
什么叫闭包?通俗来说就是函数里嵌套函数,从表现形式来看,内部函数引用外部函数的作用域里的变量,那么内部函数就称为闭包 举例说明: 1.闭包=函数块+定义函数时的环境,inner就是函数块,x就是环境 ...
随机推荐
- JDK源码学习笔记——Integer
一.类定义 public final class Integer extends Number implements Comparable<Integer> 二.属性 private fi ...
- Problem A: 零起点学算法91——找出一个数组中出现次数最多的那个元素
#include<stdio.h> int main() { ],b[]={}; while(scanf("%d",&n)!=EOF) { ;i<n;i+ ...
- 广义线性模型(logistic和softmax)
再谈广义线性模型之前,先来看一下普通线性模型: 普通线性模型的假设主要有以下几点: 1.响应变量Y和误差项ϵ正态性:响应变量Y和误差项ϵ服从正态分布,且ϵ是一个白噪声过程,因而具有零均值,同方差的特性 ...
- ES6的let和const命令
刚开始学习es6,心里有点方,因为看了前言,感觉要用什么bebal来翻译成es5的代码,才能在各个平台上兼容运行,还有node各种运行环境. 不过自己也去百度了一些,发现还是有一丢丢的困难. 言归正传 ...
- HDU 5638 Toposort 拓扑排序 优先队列
Toposort 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5638 Description There is a directed acycli ...
- 每天一个linux命令21之ln: linux 下的软链和硬链
首先理解一下一下inode:Unix/Linux系统内部不使用文件名,而使用inode号码来识别文件. 表面上,用户通过文件名,打开文件.实际上,系统内部这个过程分成三步:首先,系统找到这个文件名对应 ...
- Visual Studio自动生成XML类和JSON类
Visual Studio 2013及以上版本提供了一个非常实用的功能.可以根据xml文档或json文档自动生成类.有了这个工具反序列化时就不用再手动写类并且实现了强类型操作. 步骤 1. 准备一份j ...
- propertychange方法
1.html文件 <td> <input id="clientPhone" type="text" name="clientPhon ...
- 使用神经网络识别手写数字Using neural nets to recognize handwritten digits
The human visual system is one of the wonders of the world. Consider the following sequence of handw ...
- CSS3 @media 查询,根据屏幕screen大小调节前端显示;媒体查询方法的使用
------------------- 1.媒体查询方法在 css 里面这样写 -------------------- @media screen and (min-width: 320px) an ...