#私有方法的定义与调用

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. Android 4.1的新特性介绍

    原文:http://android.eoe.cn/topic/summary 果冻豆 - Android 4.1 通知系统 - Notifications 在Android 4.1系统上通知的功能大大 ...

  2. C++的string类常见用法

    C++的string常见用法,在网上看到一篇,但是不能在c++11编译器下运行,我修改了下,还没改完: #include<iostream> #include<string> ...

  3. 并发编程 – Concurrent 用户指南--转

    1. java.util.concurrent – Java 并发工具包 Java 5 添加了一个新的包到 Java 平台,java.util.concurrent 包.这个包包含有一系列能够让 Ja ...

  4. sql server2000导出表结构说明

    SELECT 表名 then d.name else '' end, 表说明 then isnull(f.value,'') else '' end, 字段序号=a.colorder, 字段名=a.n ...

  5. (原创)舌尖上的c++--相逢

    引子 前些时候,我在群里出了一道题目:将变参的类型连接在一起作为字符串并返回出来,要求只用函数实现,不能借助于结构体实现.用结构体来实现比较简单: template<typename... Ar ...

  6. 京东轮播图片的静态页面CSS3

    效果图: index.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"&g ...

  7. 每日英语:As World's Kids Get Fatter, Doctors Turn To The Knife

    Daifailluh al-Bugami was just a year old when his parents noticed that his lips turned blue as he sl ...

  8. 死亡之Makefile。。。

    A=Nothing build: @rm -rf build/$(A)/* > /dev/null .PHONY: build 这是一个Makefile..只需要打开终端,在这个Makefile ...

  9. openfire维持在线状态,监听消息

    public static void testLoginStatus()throws XMPPException,InterruptedException { AccountManager accou ...

  10. Windows API 错误码

    在多数情况下,windows API在发生错误时很少抛出异常,多数是通过函数返回值进行处理.(windows api中无返回值的函数很少.) windows api错误处理通常按照以下方式:首先api ...