python学习日记10 python基本语法(面向对象&类和对象&类中的成员&对象属性的动态绑定)

一、面向对象

面向对象是基于万物皆对象这个哲学观点。在Python中,一切皆对象

面向对象只是一种思想,并不是一门编程语言,也不会绑定编程语言

面向过程和面向对象的优缺点

面向过程

优点:性能比面向对象高,比如单片机、嵌入式开发等一般采用面向过程开发,因为性能是最重要的因素

缺点:没有面向对象易维护,易复用,易扩展,开销比较大,比较消耗资源

面向对象

优点:易维护,易复用,易扩展【由于面向对象有封装,继承,多态的特性,可以设计出低耦合的系统,使
得系统更加灵活,更加易于维护】

缺点:性能比面向过程低

1.类和对象

1.1 概念

:一个具有特殊功能的实体的集合【群体】,是抽象的

对象:在一个类中,一个具有特殊功能的实体,能够帮忙解决特定的问题【对象也被称为实例】,是具体的

两者之间的关系:类用于描述某一类对象的共同特征,而对象则是类的具体存在

1.2 类的定义和对象的创建

格式:

class  类名():
	类体

说明:

​ a.Python中使用class关键字定义类

​ b.类名只要是一个合法的标识符即可,但是要求:遵循大驼峰命名法 ,如:KeyError,ValueError,NameError,IndexError…….

​ c.尽量使用单个或多个有意义的单词连接而成

​ d.通过缩进来体现类体的存在

​ e.类体一般包含两部分内容:对类的特征描述和行为描述

# 一、类的定义
# 1.基本语法
# a.函数
# 函数的声明和实现
def func():
    print("ok")     # 函数体
print(func)         # 函数本身:<function func at 0x102587f70>
func()              # 调用函数:执行函数

# b.类
# 类的声明和实现
class Func():
    pass     # 类体
print(Func)  # 自定义类:<class '__main__.Func'>
Func()       # 创建对象

"""
注意:
    a.同一个py文件中可以定义多个类,但是,在实际项目开发中,如果需求较为复杂,类的定义建议一个py文件定义一个类
    b.当一个函数定义完毕,则需要手动调用,否则无法执行
      当一个类定义完毕,当类被加载的时候,其中的类体也会被加载
"""

# 二、创建对象/类的实例化
# 语法:对象名  = 类名(....),目前为空
mc1 = MyClass1()
print(mc1)  # <__main__.MyClass1 object at 0x10726bdc0>
print(type(mc1))  # <class '__main__.MyClass1'>

"""
注意:
    a.创建对象的过程,本质上就是定义变量的过程,该变量中存储的是创建出来的对象的地址
    b.打印对象的时候,默认的情况下,打印的是该对象在内存空间中的地址,
      但是,像int,str,list。。。常用的数据类型,系统已经处理过了,所以直接打印结果
    c.一个普通的类,可以创建无数个对象,每个对象在内存空间中拥有独立的地址
    d.对象名  = 类名(....)表示创建对象,但是该代码执行一次,则表示创建一个新的对象
"""

2.类中的成员/类体

2.1 成员函数的定义和访问

# 一、类中成员函数的定义
# 1.类的定义
class Person():
    # 2.多个对象共同的特征:变量

    # 3.多个对象共同的行为:函数
    """
    说明:
        a.self:自身,自己,在面向对象的函数中,self表示当前对象
        b.哪个对象调用函数,则该函数中的self表示就是哪个对象
        c.当调用函数的时候,self不需要手动传参,系统会自动完成传参,传递的是当前对象,只需要关注自定义的参数即可
        d.在Python中,self并不是一个关键字,只要是个合法的标识符即可,但是,为了表示当前对象,一般使用self
    """
    # 实例函数/对象函数,特点:第一个形参必须是self,只能由对象调用
    def run(self):
        print("running",id(self))
    def eat(self,sth):
        print(
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值