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) # 使用方法属性 对象.属性名
python_类的定义以及调用
于 2022-10-14 16:55:02 首次发布