python 高级语法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

 

以上是关于python 高级语法的主要内容,如果未能解决你的问题,请参考以下文章

9-高级语法-包

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

Python高级语法-类访问控制

Python高级语法-类访问控制

Python高级语法-类访问控制

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