类与对象
Posted newen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了类与对象相关的知识,希望对你有一定的参考价值。
类和对象
类就是抽象的概念
对象就是类生成的具体事例
属性就是类和对象所具有的事物的性质
方法就是类和对象的执行函数
例子:
人是一个抽象的类
你我他是类具体而成的对象
属性就是人这个类所具有的性质,比如说,身高体重头发颜色单双眼皮
方法就是人或者你我他能干的事,比如说,站,坐,躺,吃,喝
1 class Cat: 2 #属性 3 #方法 4 def xxx(self):#此处必须写self ====>同等于this指针指向当前的对象 5 print "123" 6 7 redcat=Cat() 8 #与c语言不同之处,可以直接添加,而不需要在类里面定义 9 redcat.name="redcat"
__init__()函数
__init__的执行过程
1. 创建一个对象
2. python会自动调用__init__方法
3. 返回创建的对象的引用给对象
什么是引用,可以理解为当前这个对象是放在内存中的,我们找到这个内存,把这个内存的编号给了贴上这个对象的“标签”
(偷懒拷贝了一下)
1 class Cat: 2 #属性 3 #方法 4 def xxx(self):#此处必须写self ====>同等于this指针指向当前的对象 5 print "123" 6 def __init__(self): 7 #__init__同等于c语言的构造函数 为默认
或许你不知道什么事构造函数,这没什么关系,名字而已,理解它就行了。
例如以下代码
1 class Cat(): 2 def __init__(self,new_name,new_age) 3 self.name=new_name 4 self.age=new_age
1 redcat=Cat("redcat",1) 2 bluecat=Cat("lanmao",2)
此时
cat1=Cat(参数1,参数2)
自动调用__init__函数
添加属性
当前对象name=参数1
当前对象age=参数2
相信很好理解吧。
__str__()函数
就上面那个例子而言,假如我们生成了对象redcat和bluecat,此时我们
print(redcat) print(bluecat)
当然会报错
除非我们使用了这个函数
def __str__(self) return 你想打印出来的话(把类的属性用上,形如self.xxx 。当然不用也可以)
然后print这个对象,就会出现上面那句话了
例子
1 class Student: 2 def __init__(self,new_name,new_age,new_ID) 3 self.name=new_name 4 self.age=new_age 5 self.ID=new_ID 6 7 def __str__(self) 8 return "%s的年龄是%s,学号是%s"%(self.name,self.age,self.ID) 9 10 11 #然后我们生成对象 12 13 xiaoming=Student(xiaoming,12,1) 14 15 #打印小明的信息 16 17 print(xiaoming)
那么此时假如小明有一只猫呢
我们可以这样(继续偷懒,复制上面的代码)
1 class Student: 2 def __init__(self,new_name,new_age,new_ID,new_cat): 3 self.name=new_name 4 self.age=new_age 5 self.ID=new_ID 6 self.cat=new_cat 7 def __str__(self): 8 message="%s的年龄是%s,学号是%s"%(self.name,self.age,self.ID) 9 message+=",拥有的猫是%s,猫的年龄是%s" %(self.cat.name,self.cat.age) 10 return message 11 12 13 14 class Cat(): 15 def __init__(self,new_name,new_age): 16 self.name=new_name 17 self.age=new_age 18 19 tom=Cat("tom",1) 20 21 xiaoming=Student("xiaoming",12,1,tom) 22 23 print(xiaoming)
日常小tips:
vim快捷键
(哪一行到哪一行)num1,num2s/原内容/想要替换的内容/g
最后粘贴一下看到的,python八荣八耻
以动手实践为荣,以只看不练为耻。
以打印日志为荣,以单步跟踪为耻。
以空白分隔为荣,以制表分隔为耻。
以单元测试为荣,以手工测试为耻。
以代码重用为荣,以复制粘贴为耻。
以多态应用为荣,以分支判断为耻。
以Pythonic为荣,以冗余拖沓为耻。
以总结思考为荣,以不求甚解为耻。
以上是关于类与对象的主要内容,如果未能解决你的问题,请参考以下文章