python8.类定义,属性,初始化,析构

类(特定的某一类别,一种抽象的概念,如:人类是一种类,数据类型是一种类)
类名的定义:Person
函数第一个(仅限于第一个)单词首字母不会去大写的,但是类名必须大写
面向过程、面向对象编程
class Person:(calss加类名)后面加属性为(直接封装属性),这种属性为共有的属性
(xiaoming为实例化的对象)xiaomin=Person()类的实例化(指向到变量上)(实例名加类名)(类名加括号是实例化,函数加括号是调用)(实例化:实际存在的例子)
1.类属性:(所有对象都通用的一些属性)(类似于变量中的参数对应的变量)(类设立时,class Person后面可加可不加括号,函数必须要加)
print(实例名.属性)时可以得出指向
2.实例名(实例化的一种对象).(这里的运算符’ . '相当于’的‘)属性(这里的属性名称是新的)=xxxx时(这是后来封装的属性,不共有的属性),
属于属性的赋值,此时的属性为属性(就像后天定义的,为有差异的新属性),是通过访问的形式给属性赋值,相当于变量的赋值,但是原来的类实例化后还是不会修改属性,所以这种修改只是暂时的
id(实例名),类名相同指向但实例名不同,id也不同
’实例的‘属性是无法指向到其他实例名的
3.实例属性(属性寻找顺序,先从实例中找,没有再去类中找,如果输入类,直接去类找,没有的话是不会去实例找的,不能逆向)
实例的属性只有当前实例才能访问到,实例属性无法访问实例名
每个实例(实例名及其属性等)的空间都是独立的,不能互相可见,实例无法访问别的实例后来封装的属性
私有属性:不想在外面被别人修改和使用(再属性前加‘_’可直接访问或‘__’不可直接访问(可用dir查询))
自定义的类属性只能用创建时的,后面打印的时候不能加创建时没加入的,但是实例化给一个对象可以随意用不存在的属性,这就是私有属性,这就是实例属性和类属性的区别

4.类的方法(类里面定义的函数为方法):(又叫实例方法,类共有的)(类定新方法就像是定一个新函数,不同点就是方法后面的括号里要加self)
class Person: (格式为这种)
实例化对象/实例名,类似于变量(如xiaoming)=Person(进行了指向,类似于变量的赋值)
def xxx(self):(这里的self就是实例化对象的自身(等同于实例化对象),不能做实例方法,方法是后面的函数),方法其实和函数一样
(‘%s。。。sdf。。。’%self.name(name为实例化对象的参数),food(另起的一个参数不属于实例化对象的参数,这里不是用init特殊方法制作参数名称))(self定义为其自身的方法)
print()
使用方法:用类去调用
实例名.xxx(),(方法)这种用法必须在def的括号里加self,不加的话,实例名的后面接的括号还得再加一次自身实例名

列表list为类,可以指向变量得到类对象,赋值得到其属性,append为list的类方法

5.魔法方法:(执行顺序由类和代码决定)(在某些条件下就会被自动执行)
__init__初始化方法:
def init(实例化对象,参数)(一般未决定实例名时无法定实例属性,但init可以初始化就可以设定属性,后面只需传入实例(实例名=Person(参数)),然后调用方法就行,无需再后来封装属性)
特点(能省略一些步骤):传参步骤,省略函数名,自动传参

del(析构函数)析构方法:
前面定义的类用过__del__后会销毁,其id都不存在
特点(销毁参数时,其对象没指向了就会跟着被自动销毁以免浪费空间),del 实例名(删除对象)
执行实例是就已经把对象销毁了

类能存放变量(属性、方法),实例能放变量
参数传入不一定在指向实例时写入类的括号里才能录入,还可以在外部用指向好的实例.属性赋值来改写该实例的参数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

T o r

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值