面向对象

1.面向对象

定义一个类:

类的格式:

class  类名(父类)  如果不继承任何父类,则用object

例如:

class Player(object):

pass

print  Player



类名后面有括号的类,成为新式类

括号里面的内容是父类;程序中,所有类的父类都是object

2.类的数据属性

可以对类添加属性,然后显示类的属性



3.类的 方法

类的方法其实就是函数,在类中定义的函数叫做方法

类的方法中,python解释器要求第一个形参必须是self,self实质上是类实例化后的对象本身

在类中定义方法,必须对类进行实例化,然后才能调用类中的方法



4.面向对象的三大特性:封装,继承,多态

封装:封装实际上就是把数据封装到某个地方,以后再去调用封装在某处的内容或者数据

封装数据

调用封装数据

通过对象直接调用

通过self间接调用



练习1:

题目要求:
创建一个People类
方法有:砍柴,娶媳妇,回家
属性有:name,age,gender
显示:
老李,18,男,开车娶媳妇
校思浩,22,男,上山砍柴
唐浩,10,男,辍学回家
#/usr/bin/env python
# coding:utf-8


class People(object):
    def __init__(self,name,age,gender):
        self.name = name
        self.age = age
        self.gender = gender
    def Cut(self):
        print "%s,%s,%s,上山去砍柴" %(self.name,self.age,self.gender)
    def Marry(self):
        print "%s,%s,%s,开车去娶媳妇" %(self.name,self.age,self.gender)
    def GoHome(self):
        print "%s,%s,%s,辍学回家" %(self.name,self.age,self.gender)


laoli = People("老李","18","男")
xiaosihao = People("校思浩","22","男")
tanghao = People("唐浩","10","男")


laoli.Marry()
xiaosihao.Cut()
tanghao.GoHome()


运行结果:
老李,18,男,开车去娶媳妇
校思浩,22,男,上山去砍柴
唐浩,10,男,辍学回家

练习2:

栈的数据结构:(先进后出,后进先出)
#!/usr/bin/env python
# coding:utf-8


class Stack(object): ##定义一个栈的类
    def __init__(self):
        self.stack = []


    def push(self,value): ##入栈
        self.stack.append(value)


    def pop(self): ##出栈
        if not self.isempty():
            return self.stack.pop()
        else:
            return None


    def top(self): ##显示栈顶元素
        if not self.isempty:
            return self.stack[-1]
        else:
            return None


    def length(self): ##显示栈的长度
        return len(self.stack)


    def isempty(self): ##判断栈是否为空
        return self.stack == []


    def view(self): ##显示栈的全部元素
        for i in self.stack:
            print i,


if __name__ == "__main__":
    stack1 = Stack()


    stack1.push(1)
    stack1.push(2)
    stack1.push(3)
    stack1.push(4)
    stack1.push(5)


    stack1.pop()
    stack1.top()


    stack1.view()
运行结果:
1 2 3 4


练习3:

队列的数据结构:(先进先出,后进后出)
#!/usr/bin/env python
# coding:utf-8


class Queue(object):
    def __init__(self):
        self.queue = []

    def push(self,value):
        self.queue.insert(0,value)

    def pop(self):
        if not self.isempty():
            return self.queue.pop()
        else:
            return None

    def top(self):
        if not self.isempty:
            return self.queue[-1]
        else:
            return None

    def length(self):
        return len(self.queue)

    def isempty(self):
        return self.queue == []

    def view(self):
        for i in self.queue:
            print i,

if __name__ == "__main__":
    queue1 = Queue()
    queue1.push(1)
    queue1.push(2)
    queue1.push(3)
    queue1.push(4)
    queue1.push(5)

    queue1.pop()
    queue1.top()

    queue1.view()

继承:

继承中与偶父类和子类



多态

当父类和子类有相同的方法时,优先调用执行子类的方法




内容概要:本文详细介绍了如何使用STM32微控制器精确控制步进电机,涵盖了从原理到代码实现的全过程。首先,解释了步进电机的工作原理,包括定子、转子的构造及其通过脉冲信号控制转动的方式。接着,介绍了STM32的基本原理及其通过GPIO端口输出控制信号,配合驱动器芯片放大信号以驱动电机运转的方法。文中还详细描述了硬件搭建步骤,包括所需硬件的选择与连接方法。随后提供了基础控制代码示例,演示了如何通过定义控制引脚、编写延时函数和控制电机转动函数来实现步进电机的基本控制。最后,探讨了进阶优化技术,如定时器中断控制、S形或梯形加减速曲线、微步控制及DMA传输等,以提升电机运行的平稳性和精度。 适合人群:具有嵌入式系统基础知识,特别是对STM32和步进电机有一定了解的研发人员和技术爱好者。 使用场景及目标:①学习步进电机与STM32的工作原理及二者结合的具体实现方法;②掌握硬件连接技巧,确保各组件间正确通信;③理解并实践基础控制代码,实现步进电机的基本控制;④通过进阶优化技术的应用,提高电机控制性能,实现更精细和平稳的运动控制。 阅读建议:本文不仅提供了详细的理论讲解,还附带了完整的代码示例,建议读者在学习过程中动手实践,结合实际硬件进行调试,以便更好地理解和掌握步进电机的控制原理和技术细节。同时,对于进阶优化部分,可根据自身需求选择性学习,逐步提升对复杂控制系统的理解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值