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

面向对象编程

时间:2019-11-25 18:11:52      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:可扩展   类型   属性   相同   报错   一个   init   面向   应该   

面向对象编程

什么是面向对象?

面向对象是一门编程思想

对象在这里指的可不是你的男女朋友

在这里对象指的是特征与技能的结合体

基于改编成思想就好比在创造世界,一种上帝式的思维方式

注意:要将自己当作一个上帝,想创造什么就创造什么,为所欲为

该编成思想的优缺点是:

优点:

? 可扩展性高

缺点:

? 编写程序的复杂度比面向过程高

什么是对象?

在说这个之前我们要知道什么是类

类指的是类型,类别

在程序中,必须现有类,通过调用类,产生对象

对象指的是特征与技能的结合体,类指的是对象之间相同的特征与技能的结合体

定义类的语法

class 类的名字 :

? —对象之间相同的特征

? —技能

# 定义老男孩学生类,命名规范,驼峰命名法
class OldboyStudent:
    # 都在老男孩学习,就是对象之间相同的特征
    school = "oldboy"
    # 注意:在类内部定义函数,会有一个默认参数,self
    # 学生的学习技能
    def learn(self):
        print("learning....")
# 调用类时,产生对象obj
# 对象调用方法时: 会将对象当做第一个参数传入方法中。
obj = OldboyStudent()
'''
由对象来调用类内部的函数,称之为对象的绑定方法。
    对象的绑定方法特殊之处: 会将对象当做第一个参数传给该方法。
'''

上面说的都是对象之间相同的特征

下面我们来说一下,如何为对象传入独有的特征

使用__ init __()方法

在这里要注意:

由对象来调用类内部的函数,称之为对象的绑定方法

看到self就应该知道是对象本身

init()方法是在类内部定义的方法,在调用类时触发,会自动将对像当做第一个参数传入,括号内的所有参数会一并传给init()

class OldboyStudent:
    school = "oldboy"
    # 为对象传入独有的name,age,sex
    # 注意: 看到self就应该知道是对象本身
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex
    def learn(self):
        print("learning....")
# 为obj对象独有特征传入参数
obj = OldboyStudent("kang", 18, "male")
print(obj1.name, obj1.age, obj1.sex)
# 打印结果
# kang 18 male

实现类或对象属性操作:增、删、改、查

class OldboyStudent:
    school = "oldboy"
    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex
    def learn(self):
        print("learning....")
# 调用类时,产生对象obj1
# 类名+() 产生对象
obj1 = OldboyStudent("kang", 18, "male")
print(obj1.name, obj1.age, obj1.sex)
print(obj1.school)
# 实现类或对象属性操作:增、删、改、查
# 增
obj1.girlfind = "zhao"
print(obj1.girlfind)
# 删
del obj1.sex
# print(obj1.sex)     # 已经删除掉了,现在再打印就会报错
# 改
obj1.school = "old"
print(obj1.school)
# 查
print(obj1.age)     # 查看obj1对象中的年龄

对象名字的查找顺序

1、对象.属性会先找对象自己的

2、若对象没有,会找类的

3、若类没有,就会报错

调用类产生对象的过程成为实例化,对象就是类的实例

一切皆对象: 在python3中,类即类型。

面向对象编程

标签:可扩展   类型   属性   相同   报错   一个   init   面向   应该   

原文地址:https://www.cnblogs.com/aheng/p/11929225.html

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