python 06.18

1.面向对象基础

面向对象编程(抽象)

对象:特征和技能的结合体

面向对象编程:对象之间的交互,优点:扩展性非常强;缺点:逻辑非常复杂

2.类与对象

类:一系列具有相同特征和技能的对象

在现实世界中先有对象,后有类

name:students1
id:210310810110
school:kmust
skills:running,Course_selection

name:students2
id:210310810111
school:kmust
skills:swimming,Course_selection
    
name:students3
id:210310810112
school:kmust
skills:swimming,Course_selection
    
name:teacher1
school:oldboy
skills:teaching,reading
    
name:teacher2
school:oldboy
skills:teaching,fishing  

python 中先定义类,后衍生出对象

class 类名(驼峰体):#定义类,会直接运行类的代码
#定义一系列特征
#定义一系列方法

对象1 = 类名() #实例化出对象

3.定义对象特有的特征

class OldBoyStudent:
    school = 'oldboy'
    count = 0
    
    def __init__(self,id,name,age=15):
        self.id = id
        self.name = name
        self.age = age
        OldBoyStudent.count += 1
    def choose_course(self):
        print('is choosing course')
        
stu1 = OldBoyStudent(222222,'朱瑞鑫')          
print(OldBoyStudent.__dict__)age
print(stu1.id,stu1.name,stu1.)

4.属性查找顺序

先从对象本身查找,然后从类中查找,类中也没有则报错

5.类与对象的绑定方法

class OldBoyStudent:
    school = 'oldboy'
    
    def __init__(self,name,age):
        self.name = name
        self.age = age
        
	def choose_course(self):
        print(id(self))
        print(self.school)
        print(f'{self.name} is choosing course ')
        
stu1 = OldBoyStudent('a',1)
stu1.choose_course() #self是对象本身
print(id(stu1))

OldBoyStudent.choose_course(stu1) 

6.类与数据类型

lis = list([1,2,3])
lis2 = list([1,2,3])
lis.append(4)
#list.append(lis,4)

7.对象的高度整合

对象会有一大推属性/数据,还会有一大推方法来操作这些属性,然后对于不同的对象,这些属性又不同。

class animal:
    def __init__(self,species,height,weight)
    self.species = species
    self.height = height
    self.weight = weight
    
	def sleep(self):
    	print(sef.species,'睡着了')
    
	def eat(self):
    	print(self.species,'开始吃饭了')

dog = animal('狗',50,50)
dog.eat()
posted @ 2019-06-18 16:40  海森t  阅读(75)  评论(0)    收藏  举报