面向对象

目录

  • 面向对象
  • 访问数据和功能
  • 添加独有的数据
  • 核心补充
  • 异常捕获

 

 

 

面向对象

对象的概念

对象:数据与功能的结合体

#前提
在程序中需要先定义类,之后才能产生对象

 

 

 

类的概念

类:多个对象相同数据与功能的结合体

 

 

 定义类

定义类的语法结构
1.class是定义类的关键字
2.Student是类的名字
类名在python中推荐首字母大写
3.缩进代码块
对象相同的数据和功能


#在类中定义的函数称之为'方法'

代码

class Student:
    #相同的数据
    school = '清华大学'
    相同的功能
    def choose_course(self):
        print('选课')
View Code

 

产生对象

class Student:
    school = '清华大学'
    def choose_course(self):
        print('选课')
# 每次都会产生一个新的对象
obj1 = Student()
obj2 = Student()
obj3 = Student()
print(id(obj1), id(obj2), id(obj3))
View Code

 

 

 

访问数据和功能

查看内部具有的属性和方法

class Student:
    school = '清华大学'
    def choose_course(self):
        print('选课')
obj1 = Student()  # 每次都会产生一个新的对象
obj2 = Student()
obj3 = Student()
print(id(obj1), id(obj2), id(obj3))
# 查看内部具有的属性和方法
print(Student.__dict__)
print(obj1.__dict__)
print(obj2.__dict__)
print(obj3.__dict__)
View Code

 

 

 

 

调用属性和方法

class Student:
    school = '清华大学'
    def choose_course(self):
        print('选课')
obj1 = Student()  # 每次都会产生一个新的对象
obj2 = Student()
obj3 = Student()
print(id(obj1), id(obj2), id(obj3))
# 采用句点符
print(obj1.school)
print(obj2.school)
print(obj3.school)
print(obj1.choose_course())
print(obj2.choose_course())
print(obj3.choose_course())
View Code

 

 

独有的数据

# 定义类
class Student:
    school = '上海xx学院'
    # 让对象具有独有的数据
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender
    # 绑定给对象的方法(绑定方法):对象来调用自动将对象当作参数传入
    def choose_course(self):
        print('%s正在选课' % self.name)
# 产生对象:类名加括号(实例化)
obj1 = Student('ben', 18, 'male')  # 每次都会产生一个新的对象
obj2 = Student('peter', 20, 'male')
obj3 = Student('jerry', 22, 'female')
obj1.choose_course()
obj2.choose_course()
obj3.choose_course()
View Code

小疑问

1.为什么调用的时候形参self不需要传值?
2.形参self到底是谁?


""" 对象在调用类里面定义的方法的时候,会自动将对象本身当成第一个位置参数传入 形参self指代的就是一个个对象 """

 

对象的其它操作

# 定义类
class Student:
    school = '上海xx学院'
    # 让对象具有独有的数据
    def __init__(self, name, age, gender):
        self.name = name
        self.age = age
        self.gender = gender
    # 绑定给对象的方法(绑定方法):对象来调用自动将对象当作参数传入
    def choose_course(self):
        print('%s正在选课' % self.name)
# 产生对象:类名加括号(实例化)
obj1 = Student('ben', 18, 'male')  # 每次都会产生一个新的对象
obj2 = Student('peter', 20, 'male')
obj3 = Student('jerry', 22, 'female')
print(obj1.name)
obj1.name = 'benNB'
print(obj1.name)
obj1.xxx = 'yyy'
print(obj1.xxx)
View Code

 

核心补充

1.父类

多个类相同的数据和功能的结合体

 

 

 

 

 2.继承

一个类可以继承多个父类并拥有多个父类里面所有的东西

 

 

3.对象查找数据和方法的顺序

对象自身开始找>>>产生对象的类里面找>>>去父类里面找

 

 异常捕获

异常的分类
    1.语法错误
        不被允许的 出现了应该立刻修改
    2.逻辑错误
        可以允许发生的,类似于bug

 

 

语法结构

try:
        被检测的代码
except 错误类型 as 变量名:
        分支代码(变量名指代的就是错误的具体信息)

#万能异常 Exception/BaseException

 

注意事项

1.异常在程序中尽量少用
2.try检测的代码要尽可能的少

 

其他关键字

else

#try被检测的代码没有异常的情况下会走

finally
        #无论是否有异常最终都会执行

 

posted @ 2021-08-31 15:52  陌若安然  阅读(49)  评论(0)    收藏  举报