Python 私有方法和引用计数初讲
#私有方法的定义与调用 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 私有方法和引用计数初讲的更多相关文章
- python 私有方法
最近了解到python私有方法的来由: Python中默认的成员函数,成员变量都是公开的(public),而且python中没有类似public,private等关键词来修饰成员函数,成员变量. 在p ...
- python垃圾回收机制:引用计数 VS js垃圾回收机制:标记清除
js垃圾回收机制:标记清除 Js具有自动垃圾回收机制.垃圾收集器会按照固定的时间间隔周期性的执行. JS中最常见的垃圾回收方式是标记清除. 工作原理 当变量进入环境时,将这个变量标记为"进入 ...
- Python内存管理及引用计数
作为一门动态语言,python很重要的一个概念就是动态类型,即对象的类型和内存占用都是运行时确定的.(Why?)运行时,解释器会根据语法和右操作数来决定新对象的类型.动态类型的实现,是通过引用和对象的 ...
- Python之美[从菜鸟到高手]--一步一步动手给Python写扩展(异常处理和引用计数)
我们将继续一步一步动手给Python写扩展,通过上一篇我们学习了如何写扩展,本篇将介绍一些高级话题,如异常,引用计数问题等.强烈建议先看上一篇,Python之美[从菜鸟到高手]--一步一步动手给Pyt ...
- 【python测试开发栈】python内存管理机制(一)—引用计数
什么是内存 在开始进入正题之前,我们先来回忆下,计算机基础原理的知识,为什么需要内存.我们都知道计算机的CPU相当于人类的大脑,其运算速度非常的快,而我们平时写的数据,比如:文档.代码等都是存储在磁盘 ...
- Python垃圾回收详解:引用计数+标记清理+分代回收
Python采用的是引用计数机制为主,标记-清理和分代收集两种机制为辅的策略. 1.引用计数 python中一切皆对象,所以python底层计数结构地就可以抽象为: 引用计数结构体{ 引用计数; 引用 ...
- Objective-C 引用计数:不讲用法,只说原理
本文所使用的源码为 objc4-647 和 CF-1153.18 实际上这是我本周实习周报的一部分,写的比较仓促,如有差错还请多多指正. 不讲用法,只说原理. 引用计数如何存储 有些对象如果支持使用 ...
- Objective-C 引用计数原理
http://www.cocoachina.com/ios/20160112/14933.html 引用计数如何存储 有些对象如果支持使用 TaggedPointer,苹果会直接将其指针值作为引用计数 ...
- Objective-C内存管理之-引用计数
本文会继续深入学习OC内存管理,内容主要参考iOS高级编程,Objective-C基础教程,疯狂iOS讲义,是我学习内存管理的笔记 内存管理 1 内存管理的基本概念 1.1 Objective-C中的 ...
随机推荐
- Go基础--终端操作和文件操作
终端操作 操作终端相关的文件句柄常量os.Stdin:标准输入os.Stdout:标准输出os.Stderr:标准错误输出 关于终端操作的代码例子: package main import " ...
- 虚拟机vmware如何进入bios设置,设置启动项(装系统时用)
方法/步骤 1 打开你要进入Bios的虚拟系统界面(处于关机状态).我这里的是server2003. 2 鼠标点击上部的 虚拟机 菜单. 3 在弹出的菜单中鼠标点击 电源 . 4 在弹出的下一级菜 ...
- Java集合框架:EnumMap
EnumMap定义 package java.util; import java.util.Map.Entry; import sun.misc.SharedSecrets; public class ...
- 每日英语:The Power of Parents Who Say 'No'
I grew up in an affluent area. Most kids owned multiple Cabbage Patch dolls and Gear bags and pairs ...
- Android 编程下 Managing Your App's Memory
Managing Your App's Memory Random-access memory (RAM) 在任何软件开发环境中都是宝贵的资源,它在物理内存有限的移动操作系统中更为宝贵.虽然 Andr ...
- hive查询遇到java.io.EOFException: Unexpected end of input stream错误
hive查询遇到java.io.EOFException: Unexpected end of input stream错误 原因基本上有两个: 空文件 不完整的文件 解决办法: 删除对应文件- 参考 ...
- openfire维持在线状态,监听消息
public static void testLoginStatus()throws XMPPException,InterruptedException { AccountManager accou ...
- visual c++中预定义的宏
一.主要目标 (由于visual studio通常包含很多开发环境,通常将其中c/c++的ide称为visual c++ 20xx) 整理下visual c++ 2010下预定义的宏.做一下备忘和了解 ...
- pypi配置国内开源镜像
### windows ------------------------------------------------- 在用户目录下新建 pip文件夹,新建pip.ini文件 [global] i ...
- iOS 设置导航栏全透明
- (void)viewWillAppear:(BOOL)animated{ //设置导航栏背景图片为一个空的image,这样就透明了 [self.navigationController.navig ...