python学习笔记6--类,方法,析构

*类

定义,属性,初始化,析构

#面向对象,eg:自己做饭or别人做饭
#面向过程,eg:煮饭=洗菜-切菜-抄菜-出锅-吃饭
#类 封装一些共有的事物,把具有共有特点的事物放在一个类里
#命名规则:驼峰命名法(首字母大写)
eg:

class GirlFriend:
    _sex='女'
    hobby='做饭'
    __age=18
xiaohua=GirlFriend#此处可加()也可不加,不加括号使用同原地址,加括号另开一空间
ruhua=GirlFriend()
print(xiaohua._sex,xiaohua.hobby)
print(id(xiaohua),id(ruhua))
xiaohua.study='超会学习'
ruhua.k='as'#实例(新地址)修改属性,不会影响原类的属性
print(ruhua.study)
print(xiaohua.k)#-->报错

#_sex 一个下划线 只是做一个简单的标记,可以正常使用
#__age 两个下划线代表特有属性,实例不能直接访问,可通过dir查看访问方式

print(xiaohua.__age)#-->报错
print(xiaohua._GirlFriend__age)#dir查询后

方法

#类里放函数既是方法
eg:

class Person:
    def __init__(self,name,girlfriend):#魔法方法,在python中以双下划线开头和结尾的称为魔法方法 每一个魔法方法都有其特有的作用
        self.name=name#__init__-->作用:初始化,实例化时传属性
        self.girlfriend=girlfriend
    def num(self):#self 谁去使用self self就是谁
        # print(xiaohong.name)
        # print(self.name)
        print('self的id是%s'%id(self))
        print(self.name)
    def op(self):
        print('%s和%s大吃一顿'%(self.name,self.girlfriend))
#xiaohong=Person('1','2')#实例化(实例时无法添加属性)
#xiaohong.name='xiaohong'#此处self=小红(实例化后可添加实例属性)
#xiaohong.num()
#print('小红的id是%s'%id(xiaohong))
#xiaohei=Person()
#xiaohei.num()#新起一个地址后,self的id值也随之变化
hans=Person('寒沙','小姐姐')
hans.op()
hans.num()#实例属性只针对于该实例

析构

#clear 删除所有元素 del 释放该序列空间
#python的垃圾回收机制 程序运行完后所有内存空间都会释放
eg:

#li=[12,3,4]
#del li#释放掉该空间
#print(li)#报错
class Person:
    def __del__(self):
        print('这里调用了del方法,在删除全部指向后')
x=Person()
del x#这里释放了Preson所以后面不会调用del方法
print('*'*10)#程序执行完后调用del方法
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值