对于这些类成员有修饰符

之前定义字段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

Python面向对象之成员修饰符的更多相关文章

  1. python面向对象之类成员修饰符

      类的所有成员分为: 公有成员,在任何地方都能访问 私有成员,只有在类的内部才能访问 私有成员和公有成员的定义不同:私有成员命名时,前两个字符是下划线.(特殊成员除外,例如:__init__.__c ...

  2. Python:Day25 成员修饰符、特殊成员、反射、单例

    一.成员修饰符 共有成员 私有成员,__字段名,__方法 - 无法直接访问,只能间接访问 class Foo: def __init__(self,name,age): self.name = nam ...

  3. Python学习 :面向对象 -- 成员修饰符

    成员修饰符 两种成员 - 公有成员 - 私有成员, __字段名 - 无法直接访问,只能通过内部方法来间接访问私有成员 简例:公有成员与私有成员  class Info: country = '中国' ...

  4. Python学习:17.Python面向对象(四、属性(特性),成员修饰符,类的特殊成员)

    一.属性(特性) 普通方法去执行的时候,后面需要加括号,特性方法执行的时候和静态字段一样不需要不需要加括号. 特性方法不和字段同名. 特性方法不能传参数. 在我们定义数据库字段类的时候,往往需要对其中 ...

  5. python学习day20 面向对象(二)类成员&成员修饰符

    1.成员 类成员 类变量 绑定方法 类方法 静态方法 属性 实例成员(对象) 实例变量 1.1实例变量 类实例化后的对象内部的变量 1.2类变量 类中的变量,写在类的下一级和方法同一级. 访问方法: ...

  6. Python面向对象(成员修饰符)

    day25 成员修饰符 class Foo: def __init__(self, name, age): self.name = name self.__age = age#私有,外部无法直接访问 ...

  7. python_way,day8 面向对象【多态、成员--字段 方法 属性、成员修饰符、特殊成员、异常处理、设计模式之单例模式、模块:isinstance、issubclass】

    python_way day8 一.面向对象三大特性: 多态 二.面向对象中的成员 字段.方法属性 三.成员修饰符 四.特殊成员 __init__.__doc__.__call__.__setitem ...

  8. Python_day8_面向对象(多态、成员修饰符、类中特殊方法、对象边缘知识)、异常处理之篇

    一.面向对象之多态 1.多态:简而言子就是多种形态或多种类型 python中不支持多态也用不到多态,多态的概念是应用与java/C#中指定传参的数据类型, java多态传参:必须是传参数的数据类型或传 ...

  9. 文成小盆友python-num8 面向对象中的成员,成员修饰符,特殊成员,异常处理,设计模式之单例模式

    本节主要内容: 1.面向对象中的成员 2.成员修饰符 3.特殊成员 4.异常处理 5.设计模式之单例模式 一.面向对象中的成员(类的成员) 类的成员总共可以分为3大类,每类中有不同的分支. 1.总述, ...

随机推荐

  1. POJ1159——Palindrome

    Palindrome Time Limit: 3000MS   Memory Limit: 65536K Total Submissions: 53647   Accepted: 18522 Desc ...

  2. SpringMVC -- 梗概--源码--贰--RestFul收参(了解) @PathVariable

    1>定制方式: //如下两个路径都可以访问到如下方法,请求路径不同,则name61和pwd61匹配到的值不同 //http://localhost:8989/appname/ful/lime/1 ...

  3. JAVA自定义注解 和 运行时靠 反射获取注解,解决 shiro 注解型权限因子获取问题

    项目的权限分配,采用的是RBAC的设计模式.后台配置权限的时候,需要获取到所有的权限因子. 不经让我想起YII框架的SRBAC模块,还有以前的一个ecshop改造系统的权限配置方式,都采用的是PHP的 ...

  4. ios开发之 -- stringByAddingPercentEscapesUsingEncoding方法被替换 iOS9.0

    最近在项目中,发现之前的一个方法已经不被建议使用了. 该方法名即题目中提到的: stringByAddingPercentEscapesUsingEncoding,这个方法是用来进行转码的,即将汉字转 ...

  5. iOS 使用正则表达式库RegexKitLite的问题

    因为RegexKitLite使用ICU库,所以需要动态链接到/usr/lib/libicucore.dylib库当中去,否则你会得到错误.具体Dynamically linked to /usr/li ...

  6. str.split()与re.split()的区别

    str.split(): >>>'hello, world'.split() >>>['hello,','world'] >>>'hello, w ...

  7. List 集合的N层遍历

    package com.j1.cms.model; import java.io.Serializable; import java.util.List; /** * Created by wangc ...

  8. 编写java的时候出现“编码GBK的不可映射字符”

    今天在编写文件的时候,使用 javac ***.java 但是java文件里面会出现一些中文的信息,So:会报错 方法: 加参数-encoding UTF-8 例如:javac -encodig UT ...

  9. Subversion权限详解

    1   背景假设厦门央瞬公司是一家电子元器件设备供应商,其中有个ARM部门,专门负责ARM芯片的方案设计.销售,并在北京.上海各设立了一个办事处.对于工作日志,原先采用邮件方式发给经理,但是这种方式有 ...

  10. OpenCV——轮廓特征描述

    检测出特定轮廓,可进一步对其特征进行描述,从而识别物体. 1. 如下函数,可以将轮廓以多种形式包围起来. // 轮廓表示为一个矩形 Rect r = boundingRect(Mat(contours ...