类的方法、构造函数、类属性、对象属性的增删查改

定义:
类就是拥有相同功能和相同属性的对象的集合;(某一类事物的统称,抽象的概念)
对象就是类的实例(类具体的表现)
语法:
class 类名:
类说明文档
类的内容(方法、属性)

说明:
1.class - 关键字;固定写法
2.类名 - 程序员自己命名;
要求:a.是标识符 b.不是关键字
规范:a.采用驼峰式命名,并且首字母大写
b.见名知义(看到名字大概知道这个类是哪种事物的统称)
c.不能使用系统的函数名、类名、模块名

3.类的说明文档 - 和函数说明文档的要求一样
4.类的内容 - 类的内容中主要包含类的方法(对象方法、类方法和静态方法)和属性(类属性、对象属性)

类的方法
1)对象方法
怎么定义:直接定义在类中的函数就是对象方法
特点:自带参数self(如果使用对象去调用对象方法,对象方法self不用传参,系统自动将当前对象传给self)
怎么调用:对象.方法()

2)类方法
怎么定义:在定义函数前加@classmethod
特点:自带参数cls(如果使用类去调用类方法,方法中的cls不用传参,系统会自动将当前类传给cls)
cls指向当前类
怎么调用:类.方法()

3)静态方法
怎么定义:在定义函数前加@staticmethod
特点:没有默认参数
怎么调用:类.方法()

例:

class Person:
    # eat就是对象方法
    def eat(self,food='米饭'):
        print(f'人类吃{food}')

    #类方法
    @classmethod
    def show_num(cls):
        print('aass')

    # 静态方法
    @staticmethod
    def show_massage():
        print('aaa')

# 调用对象方法
p1=Person()
p1.eat()

# 调用类方法
Person.show_num()

# 调用静态方法
Person.show_massage()
构造函数

python中,当我们在定义类的时候,系统会自动创建这个类的构造函数。在这个构造方法中会自动调用_ new 方法来创建对象,并且用这个创建好的对象来调用 init _对对象进行初始化操作,最后才将对象返回

** __init__方法**
init__是每个类中都有一个特殊的对象方法,是魔法方法(会被自动调用);
当创建类的对象这个类中的__init__方法会被自动调用
在类中添加__init__方法,只需保证方法名是__init
,方法是对象方法
调用构造方法创建对象的时候,这个构造方法需不需要参数,需要几个参数,看类中的__init__方法除了self以外需不需要参数

属性

类属性(类的字段)
a.定义:直接定义在类中的变量就是类属性
b.使用:类.属性
c.什么时候用:属性值不会因为对象不同而不一样的时候,就使用类属性

对象属性
a.定义:定义在__init__方法中,以self.属性=值的形式进行定义(属性自己命名,要求和规范和变量名一样)
b.使用:对象.属性
c.什么时候用:属性值会因为对象不同而不一样的时候,就使用对象属性

例:

class Person:
	# num就是类属性
	num=30
    def __init__(self,name,age=0,gender='男'):
        # name,age,gender就是对象属性
        self.name=name
        self.age=age
        self.gender=gender

    # 重写__repr__方法可以自定义对象打印格式;这个方法的打印值就是对象的打印结果
    def __repr__(self):
        #打印谁,self就是谁
        return f'name:{self.name} age:{self.age}  gender:{self.gender}'


p2=Person('小花')
print(p2)
对象属性的增删查改

1) 查 - 获取属性值
对象.属性 - 获取对象指定属性值
getattr(对象,属性名) - 获取对象指定属性的值
getatr(对象名,属性名,默认值) - 获取对象指定属性的值(如果属性不存在不会报错,返回默认值)
2) 增、改
对象.属性=值 - 如果属性存在就是修改对象属性的值;如果属性本身不存在就是添加属性
setattr(对象,属性名,值) - 同上
3)删
del 对象.属性 - 删除对象的指定属性
dellattr(对象,属性名) - 删除对象的指定属性

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值