8.类定义、属性、初始化和析构

1.类的定义 

语法:class 类名: #类名不要用中文         例:class Person:#定义Person类

              类的属性                                                 name = 'sakura'           #空体,什么也没有

实例:实例名=类名()                                       obj = Person() #Person的一个实例

类属性的调用(通过运算符".")                            print(Person.name) #sakura

1)类名.属性名                                                  print(obj.name) #sakura

2)实例名.属性名

注:若类中无某属性,可通过类名.属性名/实例名.属性名来添加

类是事物的抽象,包含了事物的属性,而实例是事物的具体表现(类是"人",而实例"北秋"是人中的具体表现)

类是一个对立存放(属性/方法)的空间,不同实例之间互相不可见,实例之间无法互相访问。

私有属性

定义:_属性名     #一个下划线,外部可直接访问

          __属性名  #两个下划线,外部不可直接访问

说明:私有属性更多的是一种规范/约定,没有真正限制的目的,部分仍可调用,后边的内容会更详细的提及私有           属性。

2.类的方法

即在类中定义方法(函数),方法为类所有的实例所共有。

规则:class 类名:

              属性

              def 方法名(self, 参数列表):#self为默认传入的实例名,即实例调用实例对象本身

                  内容

调用:实例名.方法名(),方法中可以调用类的属性(self.属性名)

例:class Person:

          age=18         #属性可以是变量

          def A():       #属性也可以是方法

             return 666

          def command(x):

                print(x,self.age,self.A())

       a=Person()

       a.command('sakura') #默认command方法的实例是a,输入sakura 18 666

       Person.command('sakura') #报错,方法无实例 Person.command(a,'sakura') 正确,传的实例为a

注:属性可以是变量,函数。方法可通过self.函数名来调用属性中的函数

3.初始化、析构

初始化

即传入参数列表初始化类的属性

方法:__init__   #在类的实例化后自动被调用,实现类的初始化

析构

用于函数使用完后销毁

方法:__del__

例:class Person:

           def __init__(self, name, age):

                self.name=name  #类的属性赋值为参数列表中的参数

                self.age=age

           def __del__(self):

                print(self.name, '已被销毁')

     a=Person('sakura',18) 

     print(a.name, a.age) #sakura 18

     del a #sakura 已被销毁 注:若不写该句,程序会自动销毁该对象来回收内存空间

     print(a.name) #报错,a已被销毁,无法调用


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值