高阶Day1:面向对象,面向过程,类和对象的属性和方法创建

高级编程学习4个内容:

面向对象

MySQL数据库

网络编程

并发编程

面向过程(POP)与面向对象(OOP):

面向过程:核心是过程二字,过程指的是解决问题的步骤。编程的时候先把解决问题的步骤分析出来,然后用函数把这些步骤实现,在一步一步的具体步骤中再按顺序调用函数。适合简单任务,不需要过多协作。
面向对象:核心是对象二字,对象是由属性和方法组成的。编程的时候首先思考的是怎么设计这个事物。 比如思考造车,我们就会先思考“车怎么设计?”,而不是“怎么按步骤造车的问题”。找轮胎厂完成制造轮胎的步骤,发动机厂完成制造发动机的步骤;这样,发现大家可以同时进行车的制造,最终进行组装,大大提高了效率。
生活中的例子

  • 买电脑
    • 面向过程:(自己买)需要电脑,查询参数信息,对比机型,对比价格,下单,收快递,开机验货,确认收货
    • 面向对象:(找人买)需要电脑,找专业人员帮我们买, 收电脑
  • 吃饭
    • 面向过程:(自己做) 我饿了,买菜,洗菜择菜,切菜,起锅烧油,炒菜,盛菜,吃饭
    • 面向对象:(出去买)买饭,吃饭

总结:

在编程中,不同的编程范式(面向过程,面向对象)不分好与坏,中国的菜系,不同的菜系也有不同的,他们之间没有高低之分,编程也是一样的,不同的编程场景使用不同的范式去做

类和对象:

  • :一个抽象的概念:即生活中“类别
    • 类中的所有的变量n称为属性
    • 类中的函数v称为方法
  • 对象类的具体实例,属于某个类别

类名的定义:

使用大驼峰命名,(所有单词首字母大写)
定义类之后没有实例对象:执行代码,类中代码执行
定义在类中的变量n称为属性,定义的函数v称为方法

创建类(类对象):

语法一:class 类名:
		  pass

语法二:class 类名:
      类代码(属性,行为)

class Ren:  # 创建了一个人的类

创建一个实例对象语法:object对象

对象名 = 类名() 
	类名():创建了一个对象 通过等于号赋值给了指定的变量
	pp = Ren()
	pp:就是一个人的对象

类(类对象)和实例对象总结:类是类型,对象是类型的数据

在python中创建的类(类对象) 其实就是创建的一个自定义的类型 也可以认为是一个大的分类

在python中 根据类(类对象)创建的实例对象自定义类型的一个数据
pp = Ren() pp对象就是Ren类的一个数据
对象是一个大的分类 那么实例对象是这个分类的其中一个数据

一:给对象添加属性和行为(方法):

1.添加属性n:

方法1:动态添加实例属性

方式一:使用对象名 赋值新属性
	实例对象名n.属性名n = 属性值;

如:pp = Ren() # 这个pp对象有具体指向哪一个人吗 ?
pp.name = ‘小清’
pp.sex = ‘男’
pp.height = 175
pp.weight = ‘120斤’
pp.idCard = ‘432503199911245678’
注:
①给实例添加的属性 叫做实例属性 这个实例属性只能当前这个对象才能使用
②在类中创建的属性叫做类属性 根据这个类产生的实例都能共享到这个属性
如:class Dog:
age = 6
③类属性只能通过类对象来进行修改
④如果类属性和实例属性同名 两者互不相干 实例对象优先使用自己的

方法2:使用构造函数/魔法方法/构造器去给实例添加属性

init前后都是两根下换线  init是固定的方法名
	    def __init__(self):
	        self.nickName = "小花"
	        self.strain = "中华田园犬"
	        self.color = "棕黄色"

①每一个实例对象 都会有一个隐藏起来的构造方法 显示调用这个构造方法为这个实例对象添加属性
②构造函数的作用:给对象添加属性
③在创建实例对象的同时给对象添加默认的属性

2. 取出属性值n:print(实例对象名.属性名)=属性值

语法:
		print(实例对象名.属性名)=属性值
如:pp.name   #print(pp.name)就是输出它的值
       pp.sex     #print(pp.sex)就是输出它的值

3.可以根据类对象产生很多个实例对象:n

类可以产生无数个实例对象 但是每一个实例对象 都是不同的个体
object:对象

语法:对象名 = 类名() 
	类名():创建了一个对象 通过等于号赋值给了指定的变量
	pp = Ren()
	pp:就是一个人的对象

二:用更高级方法给对象添加属性和方法:cls

方法一:cls:类方法

cls就是class的缩写 表示这个方法就是类方法 cls表示当前类对象
在类中创建一个带cls参数的方法叫做类方法 必须使用@classmethod
类方法也是一个共享的方法~~~
共享女友 共享雨伞
1.租女朋友回家过年
2.防雨

  如:age = 6

    	@classmethod
    	def showAge(cls):
        	print(f'~~~~共享的年龄是{cls.age}')

方法二:static静态方法

就是一个不需要写cls和self关键字也能存在于类中的方法
静态方法的作用和类方法作用一致~~~
	@staticmethod
    	def demo():
        	print('我是静态方法')

三:如何定义一个函数v:

def 函数名(形参):
    函数体
    函数名(实参)

四:实例化

1.给实例对象添加行为:v

行为在代码中表现的就是一个函数 在类中定义的函数称之为方法
当你去创建一个实例方法的时候 第一个参数一定要指定一个self参数
这个参数是固定 self表示的是当前访问的对象
实例方法:属于实例对象的方法

2.如何调用实例方法v:实例对象名.方法名():

①函数型建议小写
②定义在函数中的参数叫做形参 调用函数的时候传递的数据叫做实参
③方法的用法和函数一致
④位置参数 不定长参数

3.实例成员n:

_init_初始化注意事项:
在这里插入图片描述

4:实例化属性n:

在这里插入图片描述

5.实例化方法:

在这里插入图片描述

具体实例:

在这里插入图片描述

写一个易混的代码:
class People:
name = “jk”
age = 18

jk = People()
java = People()
print(jk)
print(jk.name)
print(jk.age)
print(java.name)
​​情况1: 如:修改自身的属性jk.name = “韦寻”
则: print(jk.name)​

情况2: 如:修改类的属性People.name = “阿飞”
则: print(jk.name)
print(java.name)​

情况3: 如:添加属性 自己对象本身java.height = 1.8
则:print(java.height)
在这里插入图片描述
在这里插入图片描述

五、打印了这个类的字典语法:dict

# 查看字典属性print(类名.__dict__)

在这里插入图片描述
注:
①在 Python 类的内部,无论是类属性还是实例属性,都是以字典的形式进行存储的,其中属性名作为键,而值作为该键对应的值。
②为了方便用户查看类中包含哪些属性,Python 类提供了__dict__ 属性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值