类基础

课题:类

目的:Python中 万物皆对象,这里的对象泛指的就是类了!

前言

#  问题一: 什么是类?

	类是一个独立存放变量(属性/方法)的空间

#  问题二: 什么是面向过程

    之前的逻辑都是自己再考虑
    从到尾,自己造
    轿子-砍树,木头,木头钉起来,装饰好看

#  问题三: 什么是面向对象

    花钱买车
    类:封装函数。
    函数封装普通代码
    类封装函数


#  之前我们在数据类型里面学习到了列表的方法,那是怎么做的可以让列表里面放下这么多方法呢?

    列表本身就是一个类
    我们的方法直接用就可以了
    .append()
    变量也是一个类  a = 1
    底层列表也是类

知识点一:类

1、类的定义

# class 定义类的关键字    类名首字母大写(约定俗成的)
class 类名:
	pass    

大驼峰命名:单词的首字母大写
TestTimePerson
小驼峰
首字母小,之后的大写
变量名,都是小写。单词之间下划线隔开

示例:
	class Person:
		pass

类的三要素

类名

属性---变量

方法---函数

class Person:
    name = 'aaa'         # 定义  类属性
print(Person.name)       # 访问类属性
                      
Person.name2 = 'xxx同学'  # 类外--添加类属性
print(Person.name2)

人类---> 小明同学 ---> 小明女朋友
例子:
    月饼---模板
    模板1---花好月圆
    模板2---中秋快乐
    类是抽象的,实例化实实在在存在的
    
    水果——>  苹果、香蕉、橘子

2、实例化

实例名 = 类名()

类是实例的工厂,类提供的是母版

面向实例--面向对象

a1 = Person()# 实例化出来的对象
# print(a1.name)
a2 = Person()
class Car:
    boon = 4# 轮子属性
audi = Car()# 奥迪类
bmw = Car()#宝马类
print(audi.name)

类的定义,实例化,类属性的访问

实例也是一个独立存放变量的空间

audi.owner='剑南春' # 对象添加的属性,空间是独立的,其他的访问不到,(改装车)
print(audi.owner)# 有
print(Car.owner)# 没有
# 实例化对象既能访问实例属性,也能访问类属性
# 类只能访问类属性

3、方法

封装在类里的一种特殊的函数

class Person:  #定义一个名字是Person的类
      def eat(self):   #在Person类中定义eat方法
          print('吃鸡腿')
ht=Person()    #Person类的一个实例
ht.eat()    #调用eat方法
---------------------------------------
class Person:
    name = 'xiaoming'
    def run(self):    # self 就是一个参数   代表 实例本身   约定俗成self
        print('正在跑')    

xiaoming = Person()   # 实例化对象
xiaoming.run()    # ok   实例化调用方法
Person.run(xiaoming)


laowang.name = '老王'  # 实例属性   
     print('%s正在跑'%self.name)

总结: 类的三要素必须要掌握


知识点二:构造方法

1、初始化

以双下划线开头且以双下划线结尾的固定方法,他们会在特定的时机被触发执行,__init__就是其中之一,它会在实例化之后自动被调用,以完成实例的初始化。

class Person:
     def __init__(self,name):  #两个下划线,初始化方法
          self.name=name
     def eat(self):   #在Person类中定义eat方法
          print('%s吃鸡腿'%self.name)  #调用实例wum的name属性
 wum=Person('茅台')   #实例化时需要传一个参数
 wum.eat()   #调用eat方法
     

init参数传递过程

实例化产生一个类的实例——》python自动调用实例.__init__(参数)——》转换为类.__init__(实例,参数)

posted @ 2023-08-31 21:24  csh逐梦  阅读(3)  评论(0编辑  收藏  举报