1 #encoding=utf-8 2 3 # python高级编程 4 5 # python面向对象 6 # 创建类 7 8 # 无意中把Visual Studio Code的窗口调小了,查了一下,可以使用Ctrl+=放大窗口,使用Ctrl+-缩小窗口 9 10 11 12 class Person: # 这里类的申明用class 13 ‘The baseclass of Human‘ # 文档字符串,相当于类的描述 14 ins_count=0 # 这里申明的是类变量,在所有实例化对象中是公用的,类似于我们所说的静态变量 15 16 def __init__(self,name,age,sex): # 这里方法的申明用def,__init__()表示初始化构造函数,注意这里的init都是双下划线 17 self.name=name # 类变量的申明,类似与我们的属性,只在当前的实例化对象中访问 18 self.age=age 19 self.sex=sex 20 self.ins_count+=1 21 22 def logInfo(self): # 方法的定义,这种定义使用类似于Person.logInfo()这种方式调用是错误的 23 if(self.sex==1): # self代表类的实例,在定义类的方法时是必须的,但在调用时不必传入相应的参数 24 print ‘His name is‘,self.name,‘,age is‘,self.age 25 else: 26 print ‘Her name is‘,self.name,‘,age is‘,self.age # 通过符号“.”来实现对属性的访问 27 print self.ins_count 28 29 def logAge(self): # 普通方法 30 print ‘Age is‘,self.age 31 32 @staticmethod 33 def printClassName(): # 静态方法 无法访问类和实例属性 34 print ‘Person‘ 35 36 @classmethod 37 def printAttr(cls): # 类方法 可以访问类属性 无法访问实例属性 38 print cls.ins_count 39 40 def __del__(self): 41 print ‘drop‘ 42 43 p=Person(‘hanmeimei‘,13,0) # 使用Person()的形式来创建类的实例,不需要像其他面向对象语言那样使用new来实例化 44 Person.printClassName() 45 p.logInfo() 46 47 48 print(getattr(p,‘name‘)) 49 50 ‘Python类的内置属性:__dict__,类的属性(包含一个字典由类的属性数据组成)‘ 51 print Person.__dict__ # 输出类的数据属性 52 print Person.__name__ # 输出类名 53 print Person.__module__ # 输出类所在的模块 54 print Person.__doc__ # 输出类的文档字符串 55 print Person.__bases__ # 输出类的所有父级的组成元组 56 57 #del p # 当对象被创建时,就创建了一个引用,当这个对象不需要时,解释器会在适当的时机将垃圾对象占用的内存空间回收,可以定义__del__函数在对象销毁时调用 58 59 class Student(Person): # 左侧即是类的继承的写法,使用 class child(parent) 60 __serialNo=10086 # 申明私有变量,在外部不可访问 61 def logAge(self): # 如果父类的方法不能满足需求时,可以在子类中重写父类的方法 62 if(self.sex==1): 63 print ‘His age is‘,self.age 64 else: 65 print ‘Her age is‘,self.age 66 67 def __addserialNo(self): # 定义私有方法,外部不能访问 68 self.__serialNo+=1 69 70 # 关于下划线的说明,像__foo()__这种头尾双下划线的表示特殊方法,一般表示系统定义的名字,如__init()__之类,_foo()单下划线开头这种则表示的是protected级别,__foo()双下划线开头表示private级别 71 72 73 s=Student(‘lilei‘,15,1) 74 s.logInfo() 75 s.logAge() 76 77 # 熟悉面向对象的同志们可能发现这里没有重载,作者表示是的,我就是没有,跟我的理念不相符,……
Python笔记
Posted krockey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python笔记相关的知识,希望对你有一定的参考价值。
以上是关于Python笔记的主要内容,如果未能解决你的问题,请参考以下文章