类与对象

本文详细介绍了Python中的类定义,包括类属性、类方法和实例方法的使用。通过示例讲解了类的创建、调用及不同方法的区别。还探讨了何时适合定义类方法和静态方法,并提供了初始化函数的示例。最后,通过创建一个名为`User`的类,展示了如何定义`describe_user()`和`greet_user()`方法,以及如何为不同用户实例调用这些方法。
摘要由CSDN通过智能技术生成

Python类的语法和关键字

类的关键字是class
语法为:
class 类名 (类名的规范是:数字、字母、下划线组成,不能以数字开头,首字母大写,驼峰命名法)
#类属性:放在类里面的变量值,比如a=1这种
#类方法:写在类里面的函数
一般类里面就会包含这两种属性

class BoyFriend:
    #类属性
    height=175
    weight=130
    money="500万"
    #类方法or类函数
    def cooking(self):#self表示实例方法
        print("男朋友要会做饭")
    
    def earn(self):
        print("男朋友月薪是3万")

	@classmethod
    def swimming(cls):#cls自己本身,与self类似
        print("男朋友还要回游泳")

#调用类
bf=BoyFriend()
bf.cooking()

类里面的方法分为三种
第一种:实例方法:以为着这个方法,只能实例来调用
例:
BoyFriend.cooking()
不创建实例,就会报错,报错如下:
TypeError: cooking() missing 1 required positional argument: ‘self’
缺少位置参数

第二种:类方法 @classmethod
用这种就不需要创建实例了,当然创建也可以
例:
BoyFriend.swimming()
这样就不会报错,可以正常打印

第三种:静态方法 @staticmethod

相同点和不同点:
实例方法self 类方法cls 静态方法(普通方法,调用不调用都可以)
1.这三种方法的共同点:
实例和类名都可以直接调用

2.不同点:
实例方法:静态发法和类方法不可以调用类里面的属性值,如果要用参数,必须要自己传递参数:

class BoyFriend():
    #类属性
    height=175
    weight=130
    money="500万"
    #类方法or类函数
    def cooking(self):
        return (self.height+"男朋友要会做饭")#这个基㐓直接调用
    @classmethod
    def swimming(cls):#cls自己本身,与self类似
        print(cls.height+"男朋友还要回游泳")#这个用了就会报错

3.什么时候可以定义为类方法和静态方法
即的那个你的某个函数与其他的类函数、类属性没有任何关系是就可以定义

初始化函数:无返回值return

class BoyFriend():
    def __init__(self, name,age):#一般不穿动态参数和关键字参数
        self.name=name
        self.age=age
  #是一个实例方法,可以调用它,提高这个类的复用性。
  def cooking(self):
        return (self.name+"男朋友要会做饭")

    def earn(self):
        return ("男朋友月薪是3万")

    @classmethod
    def swimming(cls):#cls自己本身,与self类似
        print(str(cls.name)+"男朋友还要回游泳")

    @staticmethod
    def sing():
        print("男朋友还要会唱歌")
bf1=BoyFriend("joke","18")
bf2=BoyFriend("fluse","25")
print(bf1.cooking(),bf1.earn())

练习题:创建一个名为user的类,其中包含属性first_name和last_name,还有用户简介通常会存储的其他几个属性。在类user中定义一个名为describe_user()的方法,它打印用户信息摘要;再定义一个名为greet_user()的方法,它向用户发出个性化的问候。创建多个标识不同用户的实例,并对每个实例都调用上述两个方法

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值