python基础-类

import sys

class TestClass(object):

#定义类属性和私有类属性
__name="wei"
name="whb"

def __init__(self):
    #实例属性不能这样定义
    #self.__salary=8000

    self.salary=8000
    self.id=556600

def __str__(self):
    return "TestClass Description"

def __del__(self):
    pass
    #print("TestClass instance is destroyed")

def __new__(cls):
    #print("TestClass instance is created")
    return object.__new__(cls)  #需要return

def __fun(self):
    print("private function")

#将私有方法封装
def packPrivateFun(self):
    pass
    self.__fun()

@classmethod
def happy(cls,arg):#需要默认参数cls
    print("classmethod worked")

tc1=TestClass()

print(sys.getrefcount(tc1))

tc2=TestClass()

类定义的外部访问不了类的私有属性

print(tc1.__name)

TestClass.__name

类定义的外部访问不了类的私有方法,可以调用封装了私有方法的方法

tc1.__fun()

TestClass.__fun()

tc1.packPrivateFun()

修改实例对象的类属性并对比类的类属性

tc1.name="xia"
tc2.name="lu"
print(tc1.name)
print(tc2.name)
print(TestClass.name)

修改类的类属性

TestClass.name="all"
tc3=TestClass()
print(TestClass.name)
print(tc3.name)
print(tc1.name)
print(tc2.name)

调用类方法

tc1.happy(0)
TestClass.happy(0)

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Python基础-类 @(Python)[python, python基础] 写在前面 如非特别说明,下文均基于P...
    理查德成阅读 1,558评论 2 22
  • Python基础-类变量和实例变量 写在前面 如非特别说明,下文均基于Python3 大纲: 1. 类变量和实例变...
    理查德成阅读 870评论 0 7
  • Python 面向对象Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对...
    顺毛阅读 4,347评论 4 16
  • Python作为一种动态语言,有自己的特性。学习了部分关于Python中类相关的内容之后,总结几点小知识,更好的温...
    采风JS阅读 544评论 2 43
  • 不纠结,不浪费时间,做更好的自己。 #2017-01-26#日结 1. 陪妈妈采购年夜饭食材(五花肉,蔬菜,配料)...
    山水白雲间阅读 224评论 0 0

友情链接更多精彩内容