python 模块,类和全局函数---命名空间;继承和装饰器总结
2017-10-31 18:54
525 查看
def plfir():
print("this is first")
class examp():
def __init__(self,x=4,y=1):
self.x=x
self.y=y
def lk(self):
self.display() #调用本类中的方法,不要写成:display()不带self. 或:self.display(self) 参数列表不要带self
plfir() #全局函数可直接调用,不要写成:self.plfir() 或:self.plfir(self) plfir(self)
plsec() # 全局方法和类方法 类中调用时形式 全局函数 类内函数
def display(self): #
z=self.x+self.y # 函数 ___*_____ |___self.函数名______
print(z) 参数列表 * | *
ep=examp()
def plsec():
print("this is second") #只要在实例化例子 调用函数前定义函数,都不会报错
ep.lk()
在模块中,在哪个模块中定义函数,全局命名空间就是哪个模块,而不是调用他那个模块的全局命名空间。
子类继承父类,初始化变量 __init__()构造函数必须初始化父__init__()中包含的变量,或子类省略__init__()函数让子类,自动
初始化继承父类中的变量,如:
class
pdg(dig):
def __init__(self,x,y,j):
dig.__init__(self,x,y) #父类中变量需初始化,子类中没有__init__函数,子类也会自动继承父类中的变量(属性)
子类不能继承父类私有属性和私有方法(属性名和方法名前缀有两个下划线的)
类装饰器,被装饰的类的方法包 含于 类装饰器的方法中否则会报错,如:
def abc(myclass):
class InnerClass:
def __init__(self,z=0):
self.z = 0
self.wrapper = myclass()
def position(self):
self.wrapper.position()
print('z axis:',self.z)
return InnerClass
@abc
class coordination:
def __init__(self,x=0,y=0):
self.x = x
self.y =y
def position(self):
print('x axis:',self.x)
print('y axis:',self.y)
if __name__ == '__main__':
coor = coordination()
coor.position()
函数装饰器:
def func(fun):
def new_fun(*args,**kwargs):
print "the celsius is:"
fun(*args,**kwargs)
return new_fun
@func
def fahrenheit2celsius(fahrenheit):
celsius = (5.0/9)*(fahrenheit)
print celsius
return celsius
if __name__ == '__main__':
fahrenheit2celsius(23)
print("this is first")
class examp():
def __init__(self,x=4,y=1):
self.x=x
self.y=y
def lk(self):
self.display() #调用本类中的方法,不要写成:display()不带self. 或:self.display(self) 参数列表不要带self
plfir() #全局函数可直接调用,不要写成:self.plfir() 或:self.plfir(self) plfir(self)
plsec() # 全局方法和类方法 类中调用时形式 全局函数 类内函数
def display(self): #
z=self.x+self.y # 函数 ___*_____ |___self.函数名______
print(z) 参数列表 * | *
ep=examp()
def plsec():
print("this is second") #只要在实例化例子 调用函数前定义函数,都不会报错
ep.lk()
在模块中,在哪个模块中定义函数,全局命名空间就是哪个模块,而不是调用他那个模块的全局命名空间。
子类继承父类,初始化变量 __init__()构造函数必须初始化父__init__()中包含的变量,或子类省略__init__()函数让子类,自动
初始化继承父类中的变量,如:
class
pdg(dig):
def __init__(self,x,y,j):
dig.__init__(self,x,y) #父类中变量需初始化,子类中没有__init__函数,子类也会自动继承父类中的变量(属性)
子类不能继承父类私有属性和私有方法(属性名和方法名前缀有两个下划线的)
类装饰器,被装饰的类的方法包 含于 类装饰器的方法中否则会报错,如:
def abc(myclass):
class InnerClass:
def __init__(self,z=0):
self.z = 0
self.wrapper = myclass()
def position(self):
self.wrapper.position()
print('z axis:',self.z)
return InnerClass
@abc
class coordination:
def __init__(self,x=0,y=0):
self.x = x
self.y =y
def position(self):
print('x axis:',self.x)
print('y axis:',self.y)
if __name__ == '__main__':
coor = coordination()
coor.position()
函数装饰器:
def func(fun):
def new_fun(*args,**kwargs):
print "the celsius is:"
fun(*args,**kwargs)
return new_fun
@func
def fahrenheit2celsius(fahrenheit):
celsius = (5.0/9)*(fahrenheit)
print celsius
return celsius
if __name__ == '__main__':
fahrenheit2celsius(23)
相关文章推荐
- Python入门记——模块的命名空间
- JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
- js模块,类,继承,命名空间,私有属性等相关概念梳理
- 【Python3的命名空间与作用域,闭包函数,装饰器】
- JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
- oop思维意识,类 模块命名空间,类扩展之继承 、组合、mixin三种模式
- JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
- python学习笔记——模块和命名空间
- Python模块与命名空间
- 从Python的两种导入模块(from import和import)方式谈命名空间与作用域
- JavaScript 匿名函数、模块模式、闭包、命名空间、创建构造器(类)、继承
- python 命名空间字典 字典键 继承树的打印
- js模块,类,继承,命名空间,私有属性等相关概念梳理
- Python命名空间总结 - “命名空间之禅”
- python :__future__模块简介、命名空间简介、with语句
- Python函数参数总结(位置参数、默认参数、可变参数、关键字参数和命名关键字参数)
- Python作用域和命名空间
- Python进阶 - 命名空间与作用域
- Python3.2官方文档翻译--作用域和命名空间
- PHP 命名空间总结