2021-03-06

本文深入讲解Python中的类、对象的概念,包括类的定义、属性、方法的使用,以及初始化方法`__init__`和析构方法`__del__`。通过实例演示了如何创建和调用属性、方法,以及私有属性的访问规则。此外,还介绍了实例方法的实现和重要性。
摘要由CSDN通过智能技术生成

python 类定义、属性跟方法
1、类的定义:
class 类名:
pass

class person(object):
pass

类名 :定义规则跟函数差不多,函数第一个单词首字母不会大写

类是一个独立存放变量(属性/方法)的空间
运算符“.” 调用类的属性方法
class Person: #定义一个名字是Person的类
varl = ‘这是直接封装在类中的属性’
print(Person.var1) #调用属性
Person.var2= ‘这是后来封装在类中的属性’
print(Person.var2)

wum = Person() #wum就是Person类的一个实例
print(wum.var1) #调用属性
print(wum.var2) #调用属性

class Person:
aa = 10

xiaoming = Person()
print(xiaoming.aa)

class Person:
aa = 10

xiaoming = Person()
xiaohong = Person()
xiaoming.bb = 123 #属性赋值,实例属性

print(xiaoming.bb)

实例也是一个独立存放变量的空间
每个实例都是一个独立的变量空间。
不同实例之间的空间互相不可见。

class Person:   #定义一个名字是Person的类
    pass

wum = Person()  #wum就是Person类的一个实例
mor = Person()

wum.age = 18  #后来封装在实例的属性
print(wum.age)  #正常调用
print(Person.age)   #报错在类中找不到这个属性  不回去实例中找
print(mor.age)   #报错    在实例中找不到  类中也找不到

私有属性
01、在python中有两私有属性,一个下划线()和两个下划线(__)
02、私有属性:
在python中,
和 __ 的使用更多的是一种规范和约定,没有真正限制的目的
定义在类中的私有属性可以被子类继承

class Person:   #定义一个名字是Person的类
    pass

wum = Person()  #wum就是Person类的一个实例
mor = Person()

wum.age = 18  #后来封装在实例的属性
print(wum.age)  #正常调用
print(Person.age)   #报错在类中找不到这个属性  不回去实例中找
print(mor.age)   #报错    在实例中找不到  类中也找不到

class Person:  #定义一个名字是Person的类
    _sex = '男'
    __age = '18'

ht = Person()  #wum就是Person类的一个实例

print(ht._sex)   #可以访问_sex属性
print(ht.__age)   #报错不可以直接访问__age属性
print(ht.Person__age)  #可以访问

2、方法:就是封装在类里的一种特殊的函数

class Person:  #定义一个名字是Person的类
    
    def eat(self):    #在Person类中定义eat方法
        print('吃鸡腿')
        
        
ht = Person()    
ht.eat()    #调用eat方法

实例方法

class Person:  #定义一个名字是Person的类

    def eat(self):    #在Person类中定义eat方法
        print('%s吃鸡腿'%self.name)


ht = Person()
ht.name = '小明'
ht.eat()    #调用eat方法

3、初始化、析构
初始化 特殊方法

class Person:  #定义一个名字是Person的类
    def __init__(self,name):  #初始化方法,在实例生成的一瞬间就会执行这个方法
        self.name = name    #用一个name参数赋值给实例的name属性

    def eat(self):    #在Person类中定义eat方法
        print('%s吃鸡腿'%self.name)   #调用实例wum的name属性


wum = Person('无名')   #实例化是需要传一个参数
wum.eat()   #调用eat方法

关于魔法方法。他们的执行顺序一般情况下不是有自己决定的,而是由类决定他们什么会执行

02、析构
del 就是一个析构函数,当使用del删除对象时,会调用他本身的析构函数。提示开发者,对象被销毁了,方便调试

    def __del__(self):
        print(self.name,'被销毁了')

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值