python_类的定义以及调用

class A(object):
    x = 100  # 类属性   使用方法:A.x  类名.属性名 就可以使用
    pi=3.24159

    def __init__(self, a, b, c=100):
        """
        a:参数
        并且会在特定情况下自动调用的方法 就是魔法方法
        调用:通过类创建对象的时候  init方法会被自动调用  可以根据需要在方法中随意添加参数   如果init中添加了额外的参数 那么在创建这个类的对象的时候必须通过类名的括号传递参数
        属性值会因为对象不同而不一样 就 定义成对象属性
        """
        self.a = 100  # 直接给一个具体的数据给对象属性赋值
        self.b = b  # 用一个没有默认值的参数给对象属性赋值
        self.c = c  # 用一个有默认值的参数给对象赋值
        # 对象属性 self.属性名=值   如何使用: 以对象.xxx的方式使用
        print(f'init方法被调用{a}')

    # def __str__(self):
    #     """
    #     :return:打印的时候 就会调用这个对象的方法
    #     """
    #     print('str被调用')
    #     return 'abc'
    def area(self):
        """
        :return:  方法名 赋值   
        """
        return A.pi * self.b ** 2

    def __repr__(self):
        """
        :return: 打印的时候会自动调用这个方法 这个方法的返回值作为这次打印的打印结果
                返回值类型必须是字符串 后期用的时候self.拼接的时候
        """
        print('repr被调用')
        return 'abc'

    def func1(self):
        """
        self:形参 代表的是谁调用他 他就是谁的 打印出来的内存地址是一样的  通过对象调用的时候  默认参数self不需要传参
        A().func1()  调用对象方法
        """
        print(f'就是对象方法:', self)

    @classmethod
    def func2(cls):
        """
        调用: 通过类.函数名() 来调用类方法  不用赋值也可以调用该方法
        cls:系统会自动将当前类指向他 严格来是那个类调用他  使用对象去调用的时候 有的功能难以实现
        """
        print('@classmethod就是类方法', cls)

    @staticmethod
    def func3():
        """
        调用: 通过类来调用  A.fanc3()
        """
        print('静态方法')


# a = A()  # 创建对象
# a.func1()  # 使用对象方法
# a.func3()
# A.func2()  # 使用类方法
# A.func3()  # 使用静态方法
b = A('守护')  # 创建对象的时候 init 被调用
print(b.a, b.b)  # 使用方法属性  对象.属性名

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值