#私有方法的定义与调用

class Cat:
def __init__(self):
self.name = ""
self.age = 0 def __changeage(self,_age):
self.age = _age def setage(self,_age):
if _age < 0:
#私有方法的调用
self.__changeage(10)
else:
self.__changeage(_age)
def __str__(self):
return "age is %d ."%(self.age) tom = Cat() tom.setage(11) #tom.__changeage(13) print(tom) tom.setage(-10) print(tom)
class Dog:
#__del__方法会在对象释放时由系统自动调用
def __del__(self):
print("over") dog1 = Dog() #两个变量指向同一块内存地址
dog2 = dog1 #此处并非释放dog1对象,只是将dog1指向的对象的引用计数减一,对象并没有被销毁
del dog1 print("hhhhhhhhhhhhhh") #此时已经没有变量指向dog1对象了,将会释放dog1的内存,并且调用__del__方法
del dog2 print("====")
#私有属性定义

class Dog:
def __init__(self):
self.name = "hha"
self.__age = 10 def show(self):
#私有属性可以在类内部访问
print("name is %s and age is %d"%(self.name,self.__age)) dog1 = Dog() dog1.show() print(dog1.name)
#print(dog1.__age) 报错,私有属性不允许在类外面访问

Python 私有方法和引用计数初讲的更多相关文章

  1. python 私有方法

    最近了解到python私有方法的来由: Python中默认的成员函数,成员变量都是公开的(public),而且python中没有类似public,private等关键词来修饰成员函数,成员变量. 在p ...

  2. python垃圾回收机制:引用计数 VS js垃圾回收机制:标记清除

    js垃圾回收机制:标记清除 Js具有自动垃圾回收机制.垃圾收集器会按照固定的时间间隔周期性的执行. JS中最常见的垃圾回收方式是标记清除. 工作原理 当变量进入环境时,将这个变量标记为"进入 ...

  3. Python内存管理及引用计数

    作为一门动态语言,python很重要的一个概念就是动态类型,即对象的类型和内存占用都是运行时确定的.(Why?)运行时,解释器会根据语法和右操作数来决定新对象的类型.动态类型的实现,是通过引用和对象的 ...

  4. Python之美[从菜鸟到高手]--一步一步动手给Python写扩展(异常处理和引用计数)

    我们将继续一步一步动手给Python写扩展,通过上一篇我们学习了如何写扩展,本篇将介绍一些高级话题,如异常,引用计数问题等.强烈建议先看上一篇,Python之美[从菜鸟到高手]--一步一步动手给Pyt ...

  5. 【python测试开发栈】python内存管理机制(一)—引用计数

    什么是内存 在开始进入正题之前,我们先来回忆下,计算机基础原理的知识,为什么需要内存.我们都知道计算机的CPU相当于人类的大脑,其运算速度非常的快,而我们平时写的数据,比如:文档.代码等都是存储在磁盘 ...

  6. Python垃圾回收详解:引用计数+标记清理+分代回收

    Python采用的是引用计数机制为主,标记-清理和分代收集两种机制为辅的策略. 1.引用计数 python中一切皆对象,所以python底层计数结构地就可以抽象为: 引用计数结构体{ 引用计数; 引用 ...

  7. Objective-C 引用计数:不讲用法,只说原理

    本文所使用的源码为 objc4-647 和 CF-1153.18 实际上这是我本周实习周报的一部分,写的比较仓促,如有差错还请多多指正. 不讲用法,只说原理. 引用计数如何存储 有些对象如果支持使用 ...

  8. Objective-C 引用计数原理

    http://www.cocoachina.com/ios/20160112/14933.html 引用计数如何存储 有些对象如果支持使用 TaggedPointer,苹果会直接将其指针值作为引用计数 ...

  9. Objective-C内存管理之-引用计数

    本文会继续深入学习OC内存管理,内容主要参考iOS高级编程,Objective-C基础教程,疯狂iOS讲义,是我学习内存管理的笔记 内存管理 1 内存管理的基本概念 1.1 Objective-C中的 ...

随机推荐

  1. UIButton 标题靠右

    _classBtn =  [UIButton buttonWithType:UIButtonTypeCustom]; _classBtn.frame = CGRectMake(  kDeviceWid ...

  2. [na]ip包格式

    网络层提供的服务就是在不同网段之间转发数据包. Ip包结构 1,格式(每行4byte*5) 2,版本 V4 V6 3,首部长度 20(固定)+可变长度 ,区分服务 Win2008开始:gpedit. ...

  3. 菜鸟译文(二)——使用Java泛型构造模板方法模式

    如果你发现你有很多重复的代码,你可能会考虑用模板方法消除容易出错的重复代码.这里有一个例子:下面的两个类,完成了几乎相同的功能: 实例化并初始化一个Reader来读取CSV文件: 读取每一行并解析: ...

  4. Fluent UDF【1】:简介

    前面基本完成了动网格专题的发布,不过还是有一些内容并没有更新进去,比如说in-cylinder.接触检测.2.5D网格重构等.不过这些都是小技巧,写起来挺麻烦,以后有时间再通过案例视频的方式讲解好了. ...

  5. node的http请求

    //node的http服务 'use strict' var http = require('http') var server = http.createServer(function (reque ...

  6. Python解码base64遇到Incorrect padding错误

    Python解码base64遇到Incorrect padding错误 base64转码过程 先说一下转换过程,详细的可以参考阮一峰.廖雪峰博客: 所谓Base64,就是说选出64个字符----小写字 ...

  7. Android.mk用法整理

    [时间:2016-05] [状态:Open] 输出消息 由于Android.mk使用的GNU Make的语法,可以方便的使用.ndk提供了一下三种格式的消息输出: error: debug print ...

  8. 好用的vim插件

    # 好用的vim插件 ### 简介------------------------------ 记录vim好用的插件 ### vimcdoc vim中文帮助文档-------------------- ...

  9. SQL 分页 SQL SERVER 2008

    public IList<UserInfo> GetPageList(int pageSize, int pageIndex, out int totalItemCount) { var ...

  10. Node.js学习笔记(6)--异步变同步

    说明(2017-5-3 14:59:03): 1. 异步变同步: var fs = require("fs"); var documents = []; fs.readdir(&q ...