您的位置:首页 > 编程语言 > Python开发

python 高级语法

2017-03-17 18:45 507 查看
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()


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: