python析构方法使用的名字是_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查询后

#注:python里无绝对私有

## 方法

#类里放函数既是方法

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方法

你可能感兴趣的:(python析构方法使用的名字是_python学习笔记6--类,方法,析构)