python——面向对象(1)

一、面向对象编程

面向对象编程(英语:Object­oriented programming,缩写:OOP)是一种编 程理念,这种编程理念更符合我们人的逻辑思维。使用面向对象编程可以提高我 们的开发速度和代码的重用率。面向对象的开发非常适合大型程序开发,开发速 度和后期维护都比过程化开发要好很多。

二、面向对象和面向过程理解 面向过程和面向对象都是用来解决问题的,只是解决问题的思路不同。 面向过程可以理解亲力亲为,面向对象可以理解为坐享其成。

例如炒菜 面向过程: 1)菜市场买菜,2)讨价还价,3)洗菜,4)切菜,5)炒菜,6)吃 面向对象: 1) 点开APP,2).下订单 3).吃 面向过程: 在生活中就是亲力亲为,在程序中面向过程编程就是函数之间的一个相互调用。 以函数为基本结构使用。 面向对象在生活中是坐享其成,别人做好的东西为我所用。在程序中面向对象编 程是以对象为基本结构使用。 那什么是对象呢?

三、对象和类的相关概念

1.类 生活中的类和对象概念 类:是对一群具有相同特征或者行为的事物的统称,是抽象的,不能直接使用。

例如人类狗类猫类… 描述一个类通过行为和特征 行为:会跑,会叫
特征:黄毛,大眼睛 类可以理解为一种事物的模板

2.对象 对象: 是由类创造出来的具体实体,可以直接使用的。例如 大黄,小白。 区分类和对象:
3. 类和对象之间的关系

(1) 先有类后有对象
(2)类只有一个对象可以有多个

4.类的设计 在程序中设计一个类,通常需要满足一下3个要素:

类名:大驼峰命名法。
属性:描述这类事物的特征。
方法:描述这类事物的具体行为。

四、定义一个简单的类(只包含方法)

class Student:
    ID=0
    name=""
    address=""
    def say(self):
        print(self.ID,self.name,self.address)

zs=Student()
zs.ID=1003
zs.name="zs"
zs.address="西安"
zs.say()

结果:

1003 zs 西安

五、self 变量 self : 哪个对象调用方法或者属性,self就是那个变量。 练习查看 self和 对象的内存id值是否相同。

class Person:
    def study(self):
        print("你们凌晨3点还在学习吗")
        print("study中的id--->",id(self))

    #
    # def grilfriend(self):
    #     print("热恋中的人")
    #     print("恋爱的人的id",id(self))
    def eat(self):
        print("每天吃3吨")
        print("eat中的id",id(self))


zht= Person()
# zht.grilfriend()
zht.study()
zht.eat()

结果:

你们凌晨3点还在学习吗
study中的id---> 3024978813168
每天吃3吨
eat中的id 3024978813168

六、在类的外部增加属性 方式: 对象名.属性名=值

注意:这种方式虽然简单,但是不推荐使用

七、init()方法 init()内置方法在创建对象的时候自动执行。 我们可以在 init()中做一些初始化操作。

练习1:创建Cat类,在 init()方法中初始化name属性的值

class Student:
    count=0
    def __init__(self,name,age):
        self.name=name
        self.age=age
        self.dog="小狗"
        self.cat="小猫"
        self.address="西安"
        Student.count+=1


    def say(self):
        print(f"姓名{self.name},年龄{self.age}")
        print(self.address)

zs=Student("zs",18)
zs.say()
print(zs.cat)



结果:

```python
姓名zs,年龄18
西安
小猫

八、str()方法 打印对象的名称时默认调用的是str()方法,此方法默认返回的是对象的内存地址。

我们可以重写 str() 方法打印对象保存的信息。

class Student:
    def __init__(self,name):
        self.name=name
    def __str__(self):
        return f"姓名是{self.name}"
zs=Student("zs")
print(str("zs"))

结果:

zs
['hh', 'b']
['hh', 'b']
['hh', 'b']
['hh', 'b']
['zs', 'ls']
['hh', 'b']
张三 -10
发布了36 篇原创文章 · 获赞 49 · 访问量 2893

猜你喜欢

转载自blog.csdn.net/HENG302926/article/details/103537952