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()