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

广州网站制作后缀上海知名进出口贸易公司

广州网站制作后缀,上海知名进出口贸易公司,如何建公众号,济南营销网站建设价格文章目录 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.zqtcl.cn/news/917500/

相关文章:

  • 网站管理建设工作wordpress 媒体库 直链
  • 网站备案是域名备案还是空间备案wordpress注册数学验证
  • 网站的种类有哪些怎么做代理人金沙网站
  • 西城顺德网站建设网站开发网上教学
  • 公司网站成本百度制作公司网页
  • 政务网站建设情况汇报网线制作的标准
  • 天空网站开发者wordpress 用户登陆后跳转到首页
  • 网站没有内容可以备案吗哪家网站设计好
  • 承德网站建设价格app 网站运营ppt
  • 外贸建站 服务器山西孝义网站开发
  • 廊坊网站建设开发全网整合营销公司
  • html网站建设流程网站模板二次开发
  • wordpress建站需要学什么意思sem扫描电镜
  • 总结 设网站门户网站开发一般多少钱
  • 政务网站无障碍建设wordpress虚拟资源主题
  • 确山专业网站建设百度一下一下你就知道
  • 设计类网站排名优秀广告案例
  • 自己做网站如何挣钱天津南开做网站
  • 小型教育网站的开发建设论文前端开发培训哪里好
  • 久免费域名注册网站朋友圈广告推广
  • 深圳著名设计网站西安管控最新消息
  • 珠海网站快速排名提升ftp查看网站后台密码
  • php电子商务网站源码百搜网络科技有限公司
  • 做外贸的网站怎么建立小说网站流量怎么做
  • 官网整站优化四川省造价工程信息网
  • 公司内部网站怎么建立网站建设与管理ppt
  • 做正规网站有哪些前端好学吗需要学多久
  • 1企业网站案例用自己服务器做网站用备案
  • 广州做啊里巴巴网站多少钱自贡公司做网站
  • 天津做家政的网站购物网站功能模块图