• Python基础(2)


    1.@property装饰器

    之前我们讨论过Python中属性和方法访问权限的问题,虽然我们不建议将属性设置为私有的,但是如果直接将属性暴露给外界也是有问题的,比如我们没有办法检查赋给属性的值是否有效。我们之前的建议是将属性命名以单下划线开头,通过这种方式来暗示属性是受保护的,不建议外界直接访问,那么如果想访问属性可以通过属性的getter(访问器)和setter(修改器)方法进行对应的操作。如果要做到这点,就可以考虑使用@property包装器来包装getter和setter方法,使得对属性的访问既安全又方便。

    注:1. 装饰器名,函数名需要一致.

       2. property需要先声明,再写setter,顺序不能倒过来
       3. 如果你希望一点变量只是被访问不能被修改,那么可以使用访问器@property
       4. 如果要修改访问器中的变量,可以搭建一个修改器,或者删除访问器.

    2.访问可见性问题

    私有:在变量名称前面加“__”

       私有不可以继承,不可以在外部调用,但可以在内部调用

       约定使用一个“_”表示私有(重要的)

    3.其他

    [ ]表示列表

    sort   ---排序(默认为升序)

    reverse  ---翻转

    str:将括号中的内容转换为字符串型

    4.实例

    转换器、修改器相对应的代码

    class shuzi(object):
      def __init__(self,a,b,c):
        self.__a=a
        self.__b=b
        self.__c=c
      @property
      def A(self):
        print(self.__a)

      @p.setter
      def p (self,a):
        self.__a=a1

      def sum(self):
        print(self.__a + self.__b + self.__c)

    name=shuzi(100,5000,18)
    name.a=99
    name.sum()

  • 相关阅读:
    control与delegate的Invode、BeginInvoke (一) jason
    你是否愿意每周最少工作80小时 (转)
    详解ASP.NET的SEO:服务器控件背后故事
    深度解析Windows Phone 7开发
    .NET 4新特性:表、SEO及可扩展输出缓存
    VS2010中Parallel类实现并行计算
    iPhone破解软件定制版blackra1n 提供下载
    .NET 4中废弃的特性
    Windows Server 2008 R2上安装WSUS 3.0 SP2
    关于浮动
  • 原文地址:https://www.cnblogs.com/zhang958/p/11316204.html
Copyright © 2020-2023  润新知