当前位置: 首页 > news >正文

vs2015 网站开发精品课程网站建设论文

vs2015 网站开发,精品课程网站建设论文,wordpress504,开发网站公司收入文章目录 property的介绍与使用作用使用场景装饰方法防止属性被修改 实现setter和getter的行为 staticmethod 与 classmethod作用代码示例 两者区别使用区别代码演示 abstractmethod参考资料 property的介绍与使用 python的property是python的一种装饰器#xff0c;是用来修饰… 文章目录 property的介绍与使用作用使用场景装饰方法防止属性被修改 实现setter和getter的行为 staticmethod 与 classmethod作用代码示例 两者区别使用区别代码演示 abstractmethod参考资料 property的介绍与使用 python的property是python的一种装饰器是用来修饰方法的。 作用 我们可以使用property装饰器来创建只读属性property装饰器会将方法转换为相同名称的只读属性,可以与所定义的属性配合使用这样可以防止属性被修改。 使用场景 装饰方法 修饰方法是方法可以像属性一样访问。如果使用property进行修饰后又在调用的时候方法后面添加了() 那么就会显示错误信息TypeError: ‘int’ object is not callable也就是说添加property 后这个方法就变成了一个属性如果后面加入了()那么就是当作函数来调用而它却不是callable可调用的。没有使用property修饰它是一种方法如果把括号去掉不会报错输出的就会是方法存放的地址。代码示例 class DataSet(object):propertydef method_with_property(self): ##含有propertyreturn 15def method_without_property(self): ##不含propertyreturn 15l DataSet() print(l.method_with_property) # 加了property后可以用调用属性的形式来调用方法,后面不需要加。 print(l.method_without_property()) #没有加property , 必须使用正常的调用方法的形式即在后面加()防止属性被修改 ​ 由于python进行属性的定义时没办法设置私有属性因此要通过property的方法来进行设置。这样可以隐藏属性名让用户进行使用的时候无法随意修改。 class DataSet(object):def __init__(self):self._images 1self._labels 2 #定义属性的名称propertydef images(self): #方法加入property后这个方法相当于一个属性这个属性可以让用户进行使用而且用户有没办法随意修改。return self._images propertydef labels(self):return self._labels l DataSet() #用户进行属性调用的时候直接调用images即可而不用知道属性名_images因此用户无法更改属性从而保护了类的属性。 print(l.images) # 加了property后可以用调用属性的形式来调用方法,后面不需要加。实现setter和getter的行为 property是python的一个内置装饰器使用装饰器的目的是改变类的方法或者属性这样调用者就无需在代码中做任何改动。 class Adult(object): def __init__(self):self.__age 0propertydef age(self):print(getter() method called)return self.__ageage.setterdef age(self, value):if value 18:raise ValueError(Sorry, you are a child, games not allowed)print(setter() method called)self.__age valuexiaoli Adult() xiaoli.age 19 print(xiaoli.age)staticmethod 与 classmethod 作用 一般来说要使用某个类的方法需要先实例化一个对象再调用方法。而使用staticmethod或classmethod就可以不需要实例化直接类名.方法名()来调用。这有利于组织代码把某些应该属于某个类的函数给放到那个类里去同时有利于命名空间的整洁。 代码示例 分别定义静态函数类普通函数类函数 class A(object):a a# foo1为静态函数用staticmethod装饰器装饰staticmethoddef foo1(name):print hello, name# foo2为正常的函数是类的实例的函数def foo2(self, name):print hello, name# foo3为类函数classmethoddef foo3(cls, name):print hello, name调用 a A() a.foo1(mamq) # 输出: hello mamq A.foo1(mamq)# 输出: hello mamq a.foo2(mamq) # 输出: hello mamq A.foo2(mamq) # 报错: unbound method foo2() must be called with A instance as first argument (got str instance instead) a.foo3(mamq) # 输出: hello mamq A.foo3(mamq) # 输出: hello mamq两者区别 使用区别 staticmethod不需要表示自身对象的self和自身类的cls参数就跟使用函数一样。classmethod也不需要self参数但第一个参数需要是表示自身类的cls参数。如果在staticmethod中要调用到这个类的一些属性方法只能直接类名.属性名或类名.方法名。而classmethod因为持有cls参数可以来调用类的属性类的方法实例化对象等避免硬编码。 代码演示 在classmethod中可以调用类中定义的其他方法、类的属性但staticmethod只能通过A.a调用类的属性但无法通过在该函数内部调用A.foo2()。 class A(object):a astaticmethoddef foo1(name):print hello, nameprint A.a # 正常print A.foo2(mamq) # 报错: unbound method foo2() must be called with A instance as first argument (got str instance instead)def foo2(self, name):print hello, nameclassmethoddef foo3(cls, name):print hello, nameprint A.aprint cls().foo2(name)abstractmethod 如果在父类中某个函数使用了abstractmethod那么子类中必须重新定义一遍这个函数其子类才能实例化否则就会报错。使用abstractmethod的作用是提醒编程者避免子类在编程过程中漏掉某个必要的函数。代码示例 from abc import ABC, abstractmethodclass Foo(ABC):abstractmethoddef fun(self):please Implemente in subclassclass SubFoo(Foo):def fun(self):print(fun in SubFoo)a SubFoo() a.fun()参考资料 python中的cls到底指的是什么与self有什么区别? python property的介绍与使用 setter在python中 python的setter的作用 转载 abstractmethod 的作用与使用方法
http://www.hkea.cn/news/14501443/

相关文章:

  • 郑州网站建设郑州网络推广唐山移动互联网开发
  • 网站转入备案wordpress 字体不好看
  • 个人做网站名称可以随意更改吗施工企业安全生产考核评定应分为
  • 怎么在虚拟机中做网站普像工业设计网站
  • 新闻发布网站模板长沙网络公司排行榜
  • 西安高端网站制作公司哪家好广东的网站备案
  • 网站的关键词库wordpress禁止前台登录
  • 网站模板大全 优帮云网站开发学什么数据库
  • 检测网站速度什么公司需要建立网站吗
  • 信息无障碍 网站建设望野王绩
  • 求和萝莉做的网站什么网站比谷歌还好
  • 网站备案要钱么安徽省建筑人员信息网
  • 怎么做免费的网站链接医药网站设计
  • 网站建设与管理 需求分析桥头网站建设
  • 铺面怎样做放上网站武威 网站开发
  • 知名网站制作公司没有网站百度推广
  • 建设银行网站一直打不开wordpress的程序文件
  • 百家号seo怎么做购物网站怎么做优化
  • 盛泽建设局网站丹阳建站
  • 民非企业网站建设费怎么记账网站运营与管理的目的是
  • 淘宝客网站怎么批量采集淘宝商品方维采集淘宝数据思路WordPress播放背景音乐
  • 怎样做一个单页面网站蚌埠网站建设公司
  • 网站整体风格设计滨州制作网站
  • 福建 专业网站建设公司网站模板能自己做吗
  • 自己做自己的私人网站国外商城网站设计
  • 网站 设计淄博做网站公司有哪些
  • 中企动力技术支持网站台州百度推广优化
  • 游戏网站怎么建设网站建设哪家比较好
  • 不是网站建设必须经历的过程网站首页flash模板
  • 旅游网站建设风格想建书画网站怎么做的