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就是环境 ...
随机推荐
- k-近邻算法 简单例子
from numpy import * import operator def create_data_set(): # 训练集与标签 group = array([[1.0, 1.1], [1.0, ...
- sqlserver 脚本 多条记录遍历
临时表方式实现多条记录遍历 declare @oper_cart_item_id bigint; declare @oper_cart_id bigint; declare @the_last_cha ...
- linux安装Node(Centos)
步骤 1.打开node官网,找到node版本的下载地址 这里我找到的地址是: https://npm.taobao.org/mirrors/node/v8.2.1/node-v8.2.1-linux- ...
- 从co到koa01-co
thunk 他的发展是由函数的求值策略的分歧决定的,两种求值策略 传值调用,在进入函数体之前就直接执行完,把值传进去 传名调用,将表达式传入函数体,只在用到他的时候求值 传名函数的编译器实现,其实就是 ...
- 【shiro】报错:Caused by: java.lang.ClassNotFoundException: org.apache.shiro.spring.LifecycleBeanPostProcessor
Caused by: java.lang.ClassNotFoundException: org.apache.shiro.spring.LifecycleBeanPostProcessor at o ...
- linq直接执行sql语句
1.ExecuteQuery方法 看命名,我们很容易联想到ado.net里熟悉的Command的ExecuteNonQuery方法,但是VS的智能提示告诉我们这个方法返回的是一个泛型集合,应该&quo ...
- KISS
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 ...
- 如何Oracle查出一个用户具有的所有系统权限和对象权限
1. 系统权限 SELECT * FROM DBA_SYS_PRIVS WHERE GRANTEE = 'LCAM_SYS_1216' UNION ALL SELECT * FROM DBA_SYS_ ...
- Python学习:python网址收集
Python学习网址收集: 语法学习:http://www.cnblogs.com/hongten/tag/python/ http://www.liaoxuefeng.com ...
- python爬虫之scrapy框架
Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架. 其可以应用在数据挖掘,信息处理或存储历史数据等一系列的程序中.其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的, 也可以 ...