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
    >>> 

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

  • 相关阅读:
    js类型转换的坑
    JS自动填写分号导致的坑
    tomcat+javaWeb+spring的一个都市供求管理系统
    java学习笔记--java中的基本数组[5]
    mysql基础语法及拓展到web中的sql注入
    angular指令大全
    在chrome下-webkit-box布局的一个bug
    use redis instance in docker hub
    centos yum install oracle java
    认识Debian
  • 原文地址:https://www.cnblogs.com/piaomiaohongchen/p/6270307.html
Copyright © 2011-2022 走看看