• Python面向对象之成员修饰符


    对于这些类成员有修饰符

    之前定义字段country任何对象都可以访问,是公有的

    可以定义为私用属性,只有类内部的方法可以调用,外部不能直接调用,但是可以间接调用

    vim day7-10.py

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    class Foo(object):
    
        __country = "中国"
    
        def func(self):
            print Foo.__country
    
    
    obj = Foo()
    obj.func()
    

    如果直接在外部调用Foo.__country会报错

    同样在方法前面加两个下划线在类的外部的无法调用

    PS:私有的方法只能内部访问,就算是继承也是无法调用访问的

    可以在外部使用方法调用

    vim day7-11.py

    #!/usr/bin/python
    # -*- coding:utf-8 -*-
    
    class Foo(object):
    
        __country = "中国"
    
        def __init__(self):
            self.__name = 'alex'
    
    
    obj = Foo()
    #obj.__name
    print obj._Foo__name
    

      

    PS:这种方法不推荐使用

      想使用就用间接方式应用

    小结:

    1,面向对象三大特性

      封装,继承,多态(python用不到)

    2,python,封装

      a,多个方法公用一组变量,变量封装到对象中

      b,多个方法封装在一个类中

    3,继承

      a,基类,派生类

      b,多继承

      c,新式类,经典类

      d,广度优先,深度优先

    4,类,对象

    5,类成员

      a,字段

              普通(保存在对象中) 静态(保存在内存中)

      b,方法

        普通方法     触发者:对象  至少一个self 参数

        类方法        触发者:类  只有一个cls 参数

        静态方法     触发者:类   任意参数

      c,属性(属性是对方法的变种,访问时和字段相似)

        @property  

         Data = property(方法名)

            #obj.Data = 执行方法并获取返回值

        新式类中属性

        @property      #设置属性

        @方法名.setter    #获取属性

        @方法名.deleter    #删除属性

    6,类成员修饰符

      公有 私有(加两个下划线__,只能内部访问,也能强制访问,最好间接访问)

    作业

    1,计算器

    2,游戏人生

       面向对象

    练习 paramiko,configpaser

  • 相关阅读:
    Silverlight不能调试问题(转摘) Unable to start debugging. Cannot locate Microsoft Internet Explorer.
    Mac OS X 同 Windows 的概念,词汇,热键对比随录,让你更好地过度到Mac OS X
    敏捷度和成熟度
    有什么是安全的吗?
    linux定时任务的设置
    javascript闭包
    (转)JavaScript世界的一等公民 函数
    PHP魔法函数(转)
    JS字符串截取,按字节截取
    linux cp命令
  • 原文地址:https://www.cnblogs.com/minseo/p/6904906.html
Copyright © 2020-2023  润新知