zoukankan      html  css  js  c++  java
  • 简明的Python教程当中的几个疑惑点分析#1

    #1简明的Python教程中的第11章面向对象编程学习中的类与对象的方法里面

    有这么一个案例:使用类与对象的变量

    #coding:utf-8
    #类与对象的变量学习
    class Person:
        population=0 #定义初始值,population=0
    
        def __init__(self,name):
            self.name=name
            print 'My name is %s'%self.name #会被调用
            Person.population+=1#Person.population=0+1=1
    #1Person.population+=1相当于Person中的population=population+1,population初始值是0,0+1=1变成了1
          
        def __del__(self):
            print 'hello world %s'%self.name
    
            Person.population-=1#1-1=0  #现在的1变成了0原理等同于上面的#1
            #虽然population=1变成了population=0但是,大家发现没?他在__del__方法里面,没啥用啊,一旦我创建实例即对象的时候,1还是1,不会变成0
    
            if Person.population==0:
                print 'I am the last one'
            else:
                print 'There are still %d people left'%Person.population
    #使用特殊的方法名__del__,顾名思义,del就是删除的意思,当我们创建实例即对象时自动调用
        def sayHi(self):
            print 'Hi,my name is %s'%self.name #会被调用
    
    
        def howMany(self):
            if Person.population==1:
                #所以population=1还是等于1
                print 'I am the only person here' #将会被调用
            else:
                print 'We have %d persons here'%Person.population 
    
    
    redchen=Person('redchen')
    redchen.sayHi()
    redchen.howMany()
    maniacs=Person('Maniacs')

    让我们看看输出部分:

    ======= RESTART: C:\Users\Administrator\Desktop\使用类与对象的变量.py =======
    My name is redchen
    Hi,my name is redchen
    I am the only person here
    My name is Maniacs
    >>> 

    仔细看代码上面的注释部分。

  • 相关阅读:
    Leetcode 剑指 Offer 27(二叉树的镜像)
    Leetcode 1022从根到叶的二进制之和
    Leetcode 993二叉树的堂兄弟节点
    Leetcode 965单值二叉树
    Leetcode 938 二叉搜索树的范围和
    hdu 2082 找单词
    母函数模板
    hdu 1398 Square Coins
    hdu 1085 Holding Bin-Laden Captive!
    hdu 1028 Ignatius and the Princess III
  • 原文地址:https://www.cnblogs.com/piaomiaohongchen/p/6270307.html
Copyright © 2011-2022 走看看