zoukankan      html  css  js  c++  java
  • 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)  报错,私有属性不允许在类外面访问
  • 相关阅读:
    小端大端
    位域
    c++ 2.1 编译器何时创建默认构造函数
    python 内置&&递归
    python返回值与局部全局变量
    python file
    python set
    python 字典的函数
    python FileError
    python pickle
  • 原文地址:https://www.cnblogs.com/zhanggaofeng/p/9536463.html
Copyright © 2011-2022 走看看