码迷,mamicode.com
首页 > 其他好文 > 详细

类与对象

时间:2017-11-12 21:46:45      阅读:110      评论:0      收藏:0      [点我收藏+]

标签:style   标签   tom   等于   tips   lan   返回   sage   sel   

类和对象

类就是抽象的概念
对象就是类生成的具体事例
属性就是类和对象所具有的事物的性质
方法就是类和对象的执行函数

例子:
人是一个抽象的类
你我他是类具体而成的对象
属性就是人这个类所具有的性质,比如说,身高体重头发颜色单双眼皮
方法就是人或者你我他能干的事,比如说,站,坐,躺,吃,喝

 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为荣,以冗余拖沓为耻。
以总结思考为荣,以不求甚解为耻。

类与对象

标签:style   标签   tom   等于   tips   lan   返回   sage   sel   

原文地址:http://www.cnblogs.com/zimudao/p/7822909.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!