Python基础之类和对象

类和对象
类和对象的概念

类:一个具有特殊功能的实体的集合[群体]

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

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

举例:

学生 张三

快递 顺丰

总结: 类与对象的关系

a.类是对象的抽象,对象是类的具体体现

b.类也是一种数据类型,只不过是自己定义的类似与number,string等,它本身并不占用空间,但是它的实例[对象]是占用空间的.

类的定义

格式:

class 类名:

​ 类体

说明:

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

b.类名只要是一个合法的标识符即可,命名规则遵循"驼峰式命名"

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

演示

# 一个简单的类的实例
class Person():
    print("hello")
类的设计

只需要关心3样东西

1.事物名称[类名]: 人类 (Person)

2.特征: 身高(height) 年龄(age)等 ——>名词

3.行为: 跑(run) 说话(say) —————>动词

类中的方法和属性
方法和属性的定义

生活中描述事物的无非就是描述事物的特征和行为

python中用类来描述事物也是如此,前面已经定义了类,但是,如果只有类单独存在

,没有任何意义,所以定义类其实就是定义类中的成员[成员变量和成员方法]

成员变量—>类具有的特征 例如:人—>身高,性别,体重

成员方法 —>类具有的行为 例如人—>吃喝玩乐

因此,拥有相同的(或者类似)属性和行为的对象都可以抽取出一个类

class Persion():
    #成员变量,初始值就是相当于默认值
    name = ""
    age = 0
    height = 0
    weight = 0
    #成员方法
    #在类的内部,使用def关键字来定义的一个方法
    #注意:区别于普通方法,类中方法的参数必须包含参数self,且为第一个参数
    #self代表类的实例(某个对象)
    def run(self):
        print("run")
        
    def eat(self, food):
        print("eat",food)
    
    def sleep(self):
        print("sleeping")    
    

说明:定义了类,并在类中定了成员变量和成员方法,但是成员变量和成员方法是如何使用的呢?

方法和属性的使用
实例化对象:

前面说过,对象是实实在在的个体,负责去完成某件指定的事情

对象的创建的过程又被称作对象的实例化过程

语法:

对象名 = 类名()

'''
实例化对象
格式: 对象名 = 类名()
注意: 没有参数的时候,小括号也不能省略
'''

#实例化一个对象
pre1 = Person()
print(pre1)
print(type(per1))
print(id(per1))

per2 = Person()
print(per2)
print(type(per2))
print(id(per2))
对象调用方法和属性
per = Preson()
'''
访问属性
格式:对象名.属性名
赋值:对象名.属性名 = 新值
'''
per.name = 'lili'
per.age = 18
per.height = 160
per.weight = 80
print(per.name, per.age, per.height, per.weight)

'''
访问方法
格式:对象名.方法名(参数列表)
'''
per.run()
per.eat("apple")
per.sleep()

#问题:目前来看Person创建的所有对象属性都是一样的
per2 = Person()
print(per2.age)
per3 = Person()
print(per3.age)

总结:

访问变量采用: 对象名.属性名

访问方法采用: 对象名.方法名(参数列表)

内存中的对象

per = Person()

说明:程序中定义Person类型的变量per实际是一个变量名,它被存放在栈内存中,他指向实际的Person对象,而真正的Person对象则存放在堆内存中.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6johu9KH-1602337236813)(/Users/zhangjiao/Desktop/python教学-第一阶段/day10/内存中的对象.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yWmIrVYI-1602337236820)(/Users/zhangjiao/Desktop/python教学-第一阶段/day10/内存中的对象2.png)]

综合练习:

第一天开学,介绍一下你自己其中包括姓名,年龄以及爱好

#学生类
class Student():
    #特征:成员变量
    name = ""
    age = ""
    hobby =""
    
    def introduce(self,name, age, hobby):
        print("大家好,我是%s,今年%d岁,爱好是%s"%(name,age, hobby))
    
    
    def singsong(self):
        print("娘子~啊哈")
    
    def dance(self):
        print("广场舞跳起来...")
    
    def  lie(self):
        print("我家特别穷,我小时候就一直在放牛,只有几万头....")
    
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值