python 高级语法

  1 #coding:utf-8
  2
  3 #定义一个装饰器函数
  4 def doc_func(func):
  5
  6     #包裹函数(闭包)
  7     def warpfunc():
  8         #做一些额外的事情
  9         print "%s called" %(func.__name__)
 10         func()
 11
 12     return warpfunc
 13
 14 @doc_func
 15 def foo():
 16     print "hello"
 17
 18 @doc_func
 19 def bar():
 20     print "nihao"
 21
 22
 23 if __name__== "__main__":
 24     foo()
 25
 26     bar()
 27 Ace 10:38:59 (多人发送)
 28 #coding:utf-8
 29
 30
 31
 32 class Student:
 33     ‘‘‘学生类‘‘‘
 34     def __init__(self, name, age):
 35         ‘‘‘构造函数init‘‘‘
 36         print "__init__  ..."
 37         self.name = name
 38         self.age = age
 39
 40         #python中的成员方法 一定要有个形参 self,表示调用该方法的对象本身
 41
 42     def showMe(self):
 43         ‘‘‘普通成员方法‘‘‘
 44         print "showMe()..."
 45         print self.name
 46         print self.age
 47
 48     def __del__(self):
 49         ‘‘‘析构函数‘‘‘
 50         print "__del__..."
 51
 52
 53 if __name__  == "__main__":
 54     s1 = Student("zhang3", 18)
 55     s1.showMe()
 56
 57     s2 = Student("li4", 20)
 58     s2.showMe()
 59 Ace 10:55:01 (多人发送)
 60 #coding:utf-8
 61
 62 class Student:
 63     ‘‘‘学生类‘‘‘
 64
 65     #如果一个变量 直接定义在类里面,而不是某个 成员变量里
 66     #而且没有self,  这个变量是数据类的变量(对应c++就是静态成员变量)
 67     school = "itcast"
 68
 69     def __init__(self, name, age):
 70         ‘‘‘构造函数init‘‘‘
 71         print "__init__  ..."
 72         self.name = name
 73         ##如果给以普通成员变量+  __age 表示私有
 74         self.__age = age
 75
 76         #python中的成员方法 一定要有个形参 self,表示调用该方法的对象本身
 77
 78     def showMe(self):
 79         ‘‘‘普通成员方法‘‘‘
 80         print "showMe()..."
 81         print self.name
 82         print self.__age
 83         print Student.school
 84
 85     def getAge(self):
 86         return self.__age
 87
 88     def __del__(self):
 89         ‘‘‘析构函数‘‘‘
 90         print "__del__..."
 91
 92
 93 if __name__  == "__main__":
 94     s1 = Student("zhang3", 18)
 95     s1.showMe()
 96     print s1.getAge()
 97
 98     print "*"*20
 99     s2 = Student("li4", 20)
100     s2.showMe()
101
102
103     print "*"*20
104     Student.school = "itheima"
105     s1.showMe()
106  Ace 11:23:47 (多人发送)
107 #coding:utf-8
108
109 class Student:
110
111     #静态成员变量
112     age = 18
113
114     def __init__(self, name, age):
115         self.name = name
116
117     #对象方法
118     def showme(self):
119         #对象变量
120         print self.name
121         print Student.age
122
123     #这个方法是一个类的方法,(静态的方法)
124     #类方法
125     @classmethod
126     def showme2(cls):
127         #类变量
128         print cls.age
129
130
131
132 if __name__=="__main__":
133     s1 = Student("zahng3", 18)
134     s1.showme()#普通方法
135
136     #python调用静态成员方法
137     Student.showme2()
138 Ace 11:36:34 (多人发送)
139 #coding:utf-8
140
141
142 class Person:
143     ‘‘‘人类‘‘‘
144
145     def __init__(self, name):
146         ‘‘‘人类的构造函数‘‘‘
147         print "Person __init___"
148         self.name = name
149
150     def show(self):
151         ‘‘‘人类的show()‘‘‘
152         print "Person showme()"
153         print self.name
154
155
156 class Student(Person):
157     ‘‘‘学生类‘‘‘
158
159     def __init__(self, name, age):
160         #c++中 如果子类继承父类,调用子类的构造,会自动调用父类构造o
161         #python中并不是这样,需要手动调用父类构造函数,来初始化继承过来的变量
162         Person.__init__(self, name)
163         print "Student __init___"
164         self.age = age
165
166     def show(self):
167         print "Student showme()"
168         print self.name
169         print self.age
170
171
172 if __name__=="__main__":
173     s1 = Student("zhang3", 18)
174     s1.show()
175
176     p1 = Person("li4")
177     p1.show()
178 Ace 11:59:57 (多人发送)
179 #coding:utf-8
180 #import test20#将test20 模块中的全部方法 和类  全部引入到此文件中
181             #但是使用的时候需要加test20.func1
182
183 #from test20 import func1 #仅仅引入其中一个方法 要保证此方法 在其他模块没有重名,
184 #from test20 import func2
185 from test20 import *
186
187 func1()
188 func2()
时间: 2024-10-22 07:40:27

python 高级语法的相关文章

Python高级语法示例 񙍞

原文: http://blog.gqylpy.com/gqy/412 置顶:来自一名75后老程序员的武林秘籍--必读(博主推荐) 来,先呈上武林秘籍链接:http://blog.gqylpy.com/gqy/401/ 你好,我是一名极客!一个 75 后的老工程师! 我将花两分钟,表述清楚我让你读这段文字的目的! 如果你看过武侠小说,你可以把这个经历理解为,你失足落入一个山洞遇到了一位垂暮的老者!而这位老者打算传你一套武功秘籍! 没错,我就是这个老者! 干研发 20 多年了!我也年轻过,奋斗过!我

Python高级语法-对象实例对象属性-类与实例,class方法静态方法等(4.6.1)

目录 1.说明 2.代码 关于作者 @ 1.说明 python中属性:类属性,实例属性 方法:类方法,实例方法,静态方法 想修改类属性,只能是类方法,因为只有类方法把cls(类)传入数据里面 静态方法也就是个普通的方法,为了方便而已 实例方法,不能通过类来直接调用,要调用也可以self = 对象名 具体下面 2.代码 class Provice(object): #类属性 country = "china" def __init__(self,name): #实例属性 self.nam

网络编程-Python高级语法-闭包

什么叫闭包?通俗来说就是函数里嵌套函数,从表现形式来看,内部函数引用外部函数的作用域里的变量,那么内部函数就称为闭包 举例说明: 1.闭包=函数块+定义函数时的环境,inner就是函数块,x就是环境 def outer(x): def innner(y): return x+y return innner a = outer(1) # 调用outer函数返回内部函数inner返回的的函数变量 print(a(2)) # 通过函数变量传参并运行内部函数,然后返回函数结果运行结果:3 2.闭包不可以

Python高级语法-深浅拷贝-总结(4.2.1)

目录 1.说明 2.代码 关于作者 @ 1.说明 任何可变数据类型都牵扯到深浅拷贝 但是元组,常数等,不可变数据类型,无论浅拷贝,深拷贝都是指向 不管如何嵌套,一旦牵扯到可变数据类型,都会有深浅区别 特别注意,元组切片为浅拷贝,反正可变数据类型没使用deepcopy一律浅拷贝 浅拷贝: 一个变量名等于另一个东西就一定是指向,浅拷贝是拷贝顶层的->copy.copy() 深拷贝: 是全部都拷贝copy.deepcopy 2.代码 # a = 1 # b = a # print(id(a),id(b

Python高级语法-import导入-sys.path(4.4.1)

目录 1.说明 2.代码 关于作者 @ 1.说明 在开发程序的过程中,往往使用sys.path去验证下导入的目录,返回的是列表 先后顺序,就是扫描的先后顺序 ,也可以加入搜索路径 import有个特点防止重复导入 import是把包拷贝一份放在内存中,所以当代码改变的时候,程序运行不会变 重新导入也不会变,需要重新导入的使用imp的reload模块 还有 from 模块 导入 属性 属性 = .. 此时模块内的属性不会更改,只是复制了一份,如果是可变数据类型,那么使用append之类的话会更改

Python高级语法-多继承MRO相关-多继承顺序(4.5.1)

目录 1.说明 2.代码 关于作者 @ 1.说明 使用类的魔法方法__mro__ 可以查看他的父类调用顺序 还有调用父类的构造方法的时候,使用super调用,里面有C3算法支持,不会重复调用相同的祖先类 2.代码 class Parent(object): def __init__(self,name,*args,**kwargs): print("Parent的init开始调用") self.name = name print("Parent的init结束调用")

Python高级语法-多继承MRO相关-args和kwargs(4.5.2)

目录 1.说明 2.代码 关于作者 @ 1.说明 args数据类型为元组 kwargs数据类型为字典 一般传入方法中使用遍历去得到值 这个传入参数的顺序没有特殊的要求 当你自定义的参数传完以后,写了名字的就给kwargs,没有名字的给args 2.代码 def test(*args,**kwargs): for i in args: print(i) for i in kwargs: print(kwargs[i]) if __name__ == '__main__': test(1,2,3,3

Python高级语法-私有属性-with上下文管理器(4.7.3)

目录 1.说明 2.代码 关于作者 @ 1.说明 上下文管理器 这里使用with open操作文件,让文件对象实现了自动释放资源.我们也能自定义上下文管理器,通过__enter__()和__exit__()这两个魔术方法来自定义的操作文件 当有上下文使用的场景的时候,如打开一个东西要关闭,像等文件等资源,就可以使用这种方式去定义一个上下文管理器 2.代码 class File(): def __init__(self,filename,mode): self.filename = filenam

Python高级语法-私有属性-魔法属性(4.7.2)

目录 1.说明 2.代码 关于作者 @ 1.说明 常用的一些魔法方法如下 所谓魔法方法,就是调用的时候 不好好正常调用 2.代码 class Test: """ 我是___doc____ """ class_index = 0 def __init__(self,index): self.index = index print("index") def __call__(self, *args, **kwargs): prin