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就是环境 ...
随机推荐
- Perl中的数组&哈希应用
哈希和数组是Perl中较为常用的结构,本文则重点讨论数组和哈希的一些基本用法,供广大喜爱Perl的同学们交流学习. 哈希 Perl中的哈希表类似于Python中的字典结构,由(键=>值)对构成, ...
- Java并发(五):synchronized实现原理
一.synchronized用法 Java中的同步块用synchronized标记. 同步块在Java中是同步在某个对象上(监视器对象). 所有同步在一个对象上的同步块在同时只能被一个线程进入并执行操 ...
- http请求 url 传递参数(特殊字符)解决方法
有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码 十六进制值 1. + URL 中+号表示空格 %2B ...
- Codeforces Round #343 (Div. 2) B. Far Relative’s Problem 暴力
B. Far Relative's Problem 题目连接: http://www.codeforces.com/contest/629/problem/B Description Famil Do ...
- (转)适配器模式--Adapter Pattern
适配器:基于现有类所提供的服务,向客户提供接口,以满足客户的期望. <设计模式>一书中是这样给适配器模式定义的:将一个类的接口转换成客户希望的另外一个接口.Adapter 模式使得原本由于 ...
- Kubernetes应用迁移问题定位
这个帖子记录所有的应用迁移中遇到的问题. 关于镜像无法启动后无法定位问题 在原有的Dockerfile中修改,加入 RUN echo "aaa" > /etc/a.log C ...
- Eclipse启动时禁用不必要的验证。
window>preferences>general>editors>text editors>Annotations,右边的Annotation type里,点选err ...
- java正則表達式 match、find匹配位置
如题.对于java正則表達式这几个方法匹配一次后的,匹配位置搞不太清楚,就写了几个样例.例如以下: String ss="ooaaoo"; Pattern pt=Pattern.c ...
- [转]SSIS包的调用方式
本文转自:http://www.cnblogs.com/lijun4017/archive/2008/12/04/1347701.html 编写简单SSIS包光看MSDN应该就问题不大了,最近几天几个 ...
- iOS:多线程技术GCD的使用
GCD的使用: 1.队列的类型 1.1 主队列:mian queue,主线程队列,负责更行UI的操作.是一个串行的队列. 1.2 系统默认的并行队列:global queue,按优 ...