zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    深度学习学习总结
    线性回归学习总结
    机器学习常用算法总结
    2020年,给自己立个flag
    与博客添网易云外钟墯之坑
    给博客添加网易云外链时掉的坑
    BEGINNING
    【华为云技术分享】程序员真香定律:源码即设计
    【华为云技术分享】【DevCloud · 敏捷智库】如何利用核心概念解决估算常见问题
    差点被祭天!狂欢618,且看研发人如何绝地求生
  • 原文地址:https://www.cnblogs.com/minseo/p/6904906.html
Copyright © 2011-2022 走看看