洗礼灵魂,修炼python(40)--面向对象编程(10)—定制魔法方法+time模块

从理论到代码:如何用随机矩阵理论(RMT)优化你的微生物共现网络分析? 本文详细介绍了如何利用随机矩阵理论(RMT)优化微生物共现网络分析,解决传统阈值法的主观性和不稳定性问题。通过R语言实现端到端的分析流程,包括矩阵标准化、本征值谱分析和自动阈值确定,显著提升网络构建的准确性和可靠性。该方法特别适用于高通量测序数据,能自动识别噪声与真实信号的边界,为微生物组学研究提供更精确的互作网络分析工具。 阅读详情

定制魔法方法

1.什么是定制魔法方法

首先定制是什么意思呢?其实就是自定义了,根据我们想要的要求来自定义。而在python中,其实那些所谓的内置函数,内置方法,内置属性之类的其实也是自定义出来的,不过是龟数开发python时已经给出了,已经自带了基本能想到的功能都带有了,换句话就是已经给我们事先定义好了,要用的话,直接拿来就用就是,不需要我们自己再去定义。定制魔法方法就是自定义魔法方法了。但是必须遵循定制魔法方法的一些规则

 

2.怎么定制

说到定制魔法方法,那么魔法方法是哪里有的?类啊,要想定制魔法方法,那么必须得和类结合一起才行的

 

看一个简单的例子:

 

里面的__str__就是我们自己定制的魔法方法

看下还有哪些属性和方法呢?

 

我这里使用的是python3,前面说过了,因为在python3定义类时,即使不加object,python3也会默认给你把object基类加上,上面那些方法大部分都是继承object类的方法的。

 

不过这里要提一个魔法方法,前面忘了提了——__dict__

这个魔法方法是干什么的呢?是用于查看实例对象的属性的,格式:

对象名.__dict__#字典属性,与python内置的dir()函数功能有点类似

例:python3下

 

 python2下:

 

但是如果是查看实例化的对象是空的

 

 

再看例子:

而使用__repr__魔法方法则不用print就可以直接返回

 

3.例子

场景:百米赛跑的运动会上,设置一个计时器,能准确无误的计时每个运动员跑完一百米后所用的时间,场上有5个赛道,有5个运动员同时比赛。只有一场比赛,用时较短者胜。

 

例子先放一边,既然需要计时器,那么首先这里得说个知识点——时间

在python中,通常三种方式来表示时间:

  • struct_time元组
  • 时间戳
  • 格式化的时间字符串

 

一、struct_time元组

1.什么事struct_time元组:

这个元组很特殊,单独成类,但其实本质上是一个元组

2.怎么生成struct_time元组:使用time模块的localtime方法

 

这个元组共有九个元素,虽然都是使用=来连接,但它既不是字典也不是集合,就是哦这么特殊。

每个元素依次的含义:

索引(Index)属性(Attribute)值(Values)
0tm_year(年)比如2017
1tm_mon(月)1 - 12
2tm_mday(日)1 - 31
3tm_hour(时)0 - 23
4tm_min(分)0 - 59
5tm_sec(秒)0 - 61
6tm_wday(weekday)0 - 6(0表示周日)
7tm_yday(一年中的第几天)1 - 366
8tm_isdst(是否是夏令时)默认为-1

 最长用的就是前6个,后面三个基本不怎么用

 

二、时间戳(注意是戳,不是截取的截)

1.什么是时间戳

时间戳(timestamp),一个能表示一份数据在某个特定时间之前已经存在的、 完整的、 可验证的数据,通常是一个字符序列,唯一地标识某一刻的时间。是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。通俗的讲, 时间戳是一份能够表示一份数据在一个特定时间点已经存在的完整的可验证的数据。 它的提出主要是为用户提供一份电子证据, 以证明用户的某些数据的产生时间。 在实际应用上, 它可以使用在包括电子商务、 金融活动的各个方面, 尤其可以用来支撑公开密钥基础设施的 “不可否认” 服务(来自百度百科解释)

2.时间戳怎么生成:用time模块的time方法

3.时间戳与时间之间的转换:

1)时间转换为时间戳:

  • 使用time模块的strptime方法将时间转为struct_time元组
  • 使用time模块的mktime方法将struct_time元组转为时间戳

2)时间戳转为时间:

  • 使用time模块的localtime方法将时间戳转为struct_time元组
  • 使用time模块的strftime方法将struct_time元组转为时间

 

其实你有没有发现,时间戳和时间之间相互转换的中途都会使用struct_time元组作为中转站,就像字符编码里的unicode一样

 

 

三、格式化的时间字符串

时间也是字符串,作为一个特殊的时间字符串

格式化成新的格式的时间字符串

 这里的【"%Y-%m-%d %H:%M:%S"】和【"%Y-%m-%d-%H-%M-%S"】里的%Y,%m,%d,%H,%M,%S都是定死了的,不能更改,就像%s代表字符串,%f代表浮点型数一样

 

符号

含义

%a

本地(locale)简化星期名称

%A

本地完整星期名称

%b

本地简化月份名称

%B

本地完整月份名称

%c

本地相应的日期和时间表示

%d

一个月中的第几天(01 - 31)

%H

一天中的第几个小时(24小时制,00 - 23)

%I

第几个小时(12小时制,01 - 12)

%j

一年中的第几天(001 - 366)

%m

月份(01 - 12)

%M

分钟数(00 - 59)

%p

本地am或者pm的相应符

%S

秒(01 - 61)

%U

一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周。

%w

一个星期中的第几天(0 - 6,0是星期天)

%W

和%U基本相同,不同的是%W以星期一为一个星期的开始。

%x

本地相应日期

%X

本地相应时间

%y

去掉世纪的年份(00 - 99)

%Y

完整的年份

%Z

时区的名字(如果不存在为空字符)

%%

‘%'字符

 

注意:

  • “%p”只有与“%I”配合使用才有效果
  • 文档中强调确实是0 - 61,而不是59,闰年秒占两秒
  • 当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%U才会被计算

 

有了以上的解析,相信你已经对time模块了解得差不多了。

 

那么接着看例子,我们要解决那个计时器,就必须得具备上面的知识点,才能解决这个问题

import time as t

class Timer():
    def __init__(self):
        self.unit=['年','月','天','小时','分钟','秒','星期','一年中的天数','夏令时']
        self.string='未开始比赛'
        self.last=[]
        self.begin=0
        self.end=0

    def __str__(self):
        return self.string

    __repr__=__str__    #这个方法前面说过,当调用方法时,会自动打印方法下的字符串

    def start(self):
        self.begin=t.localtime()
        self.string='请务必保证事先已调用stop()归零'
        print('计时开始...')

    def stop(self):
        if not self.begin:
            print('请务必保证事先已调用start()开始计时')
        else:
            self.end=t.localtime()
            self.result()
            print('计时结束')

    def result(self):
        self.last=[]
        self.string='运动员总共用时'
        for index in range(9):
            self.last.append(self.end[index]-self.begin[index])
            if self.last[index]:
                self.string += (str(self.last[index])+self.unit[index])

        self.begin=0
        self.end=0


    def __add__(self,other):
            string='运动员总共用时'
            result=[]
            for i in range(9):
                result.append(self.last[i]+other.last[i])
                print(result)
                if result[i]:
                    string += (str(result[i])+self.unit[i])
                    #print(string)
                    return string

 

代码是用于计算一个运动员比赛用时的,开始测试结果:

 

由于在实际开发中都会先测试再真正投入使用。这里没有问题,进行真正使用

 

比赛计时器

结果:

 

 你会想,等会儿,本篇博文主题不是定制魔法方法吗?这里用到了?

是的用到了,不过用的少,只有一个__repr__ = __str__  ,慢慢来,在面向对象章节了还有很多知识点。

那么你可能会想,怎么5个运动员的开始起跑和到达终点都是手动控制的,可以同时进行吗?可以的,后面说到多线程和异步的时候就会说到,这里先暂时忽略本问题吧

PS:我的博文也会尽量把知识面覆盖完,有时候为了把相关知识全部拿出来,所以思维都是一个网状式的,可能突然想起什么去解析这里然后同时又忘记那里就没有拿出来解析,这个也请见谅,我只是一个自学编程的无名人士,不是大佬,也没有多少写博文的经验,有时候为了说明一个知识点,自创一个例子来举例也可以能举的不是很好(比如上面的计时器例子,我想了很久才想到和自定义魔法方法沾边的,能力有限,没办法),那些例子也不知道你们能不能看懂,总之,以后继续努力

 

关于面向对象编程的主线知识点基本算覆盖完了,后期我打算随机出一两篇巩固复习知识点的博文,希望尽量能把面向对象说清楚,尽量把所有相关知识点说全,因为真的很重要。


 

【异常】Claude Code 在 Windows CMD 中出现重影现象的排查与解决 Windows CMD运行Claude Code时出现文字重影、乱码等问题,原因是传统CMD对现代ANSI终端控制序列支持不足。解决方案包括:1)推荐安装Windows Terminal(完全支持ANSI标准);2)使用PowerShell 7;3)优化CMD设置(启用虚拟终端、UTF-8编码);4)关闭Claude Code视觉特效。建议优先使用Windows Terminal以获得最佳体验,这是最彻底的解决方案。其他方案仅能部分改善或缓解问题。 阅读详情

相关推荐

SAP S/4HANA 可扩展性 – 面向初学者的简化指南

可扩展性(Extensibility)是 SAP ECC 和 SAP S/4HANA 的一项关键功能。它使客户能够通过定制其业务流程来创造竞争优势,并使合作伙伴能够通过量身定制的解决方案来丰富核心 ECC 或 S/4HANA。在过去的几十年中,SAP 的 on-premise 版本客户和合作伙伴主要使用经典的 ABAP 扩展性来扩展他们的 ERP 解决方案。经典扩展性允许 ABAP 开发人员使用甚至修改所有 SAP 对象。尽管经典扩展性非常强大和灵活,但在当今的云世界中,它已不再是一个好的选择。

SAP学习成长之路的博客 1808

Jupyter notebook Ipython 魔法函数 Magic 计算代码(函数)耗时 Timing(%%time %time %timeit)

1.%%time 将会给出cell的代码运行一次所花费的时间。 2.%time 将会给出当前行的代码运行一次所花费的时间。 3.%timeit 使用Python的timeit模块,它将会执行一个语句100,000次(默认情况下),然后给出运行最快3次的平均值。 参考文章:Jupyter Magic - Timing(%%time %time %timeit) ...

Dontla的博客 1107

SAP MTO实战:从销售订单到生产订单的精准触发与配置详解

本文深入解析SAP系统中按订单生产(MTO)模式的核心流程与配置。详细阐述了如何通过精准配置物料主数据策略组、需求类型及计划策略(如策略50),实现从销售订单自动触发生产订单的完整链路。文章结合实战案例,指导用户打通销售与生产环节,并提供了关键事务代码与常见问题排查指南,助力企业实现以销定产,优化库存与成本控制。

weixin_29300931的博客 212

python time模块计时_Python 实现秒表功能

Python 实现秒表功能以下实例使用 time 模块来实现秒表功能:实例importtimeprint('按下回车开始计时,按下 Ctrl + C 停止计时。')whileTrue:input("")# 如果是 python 2.x 版本请使用 raw_input()starttime=time.time()print('开始')try:whileTrue:print('计时:',round(t...

weixin_39621456的博客 280

OpenCV 开闭运算

开运算和闭运算是将腐蚀和膨胀按照一定的次序进行处理。 但这两者并不是可逆的,即先开后闭并不能得到原来的图像。 开运算 开运算是先腐蚀后膨胀,其作用是:分离物体,消除小区域。特点:消除噪点,去除小的干扰块,而不影响原来的图像。 闭运算 闭运算与开运算相反,是先膨胀后腐蚀,作用是消除/“闭合”物体里面的孔洞,特点:可以填充闭合区域。 cv.morphologyEx(img, op, kernel) img: 要处理的图像 op: 处理方式:若进行开运算,则设为cv.MORPH_OPEN,若进行闭

꧁༺ʚvv༒catɞ༻꧂的博客 949

TMS-EEG数据预处理:eeglab工具包TESA(一)

b. 自动选择:Tools -> Reject data epochs -> Reject by probability,然后进行Plot -> channel,进行删除。TMS-EEG(经颅磁刺激-脑电图)是一种结合了TMS和EEG记录的技术,这种技术允许研究者在非侵入的情况下探测大脑环路,评估大脑的兴奋性和连通性等皮层特性。对移除脉冲伪迹的数据进行插值:Tools ->TESA -> Interpolate removed data;插值后,画图查看:数据会有数值;

weixin_43604817的博客 1492

jupyter notebook 常用魔法函数 Magic Function%time %timeit %who %pip %cd

目录魔法命令行(Magic command system)查看变量两类 Magic commands计时 魔法命令行(Magic command system) IPython 可以让我们在 jupyter notebook 里实现命令行的操作,比如下列语句 In [1]: %cd /home/fperez In [2]: cd mydir /home/fperez/mydir 需要在命令前面加上 %。(不加其实也可以使用,只是需要注意命令会被变量名所覆盖) In [1]: cd ipython

qq_41103204的博客 2794

VisionPro实战:5个工业视觉检测案例详解(附代码片段)

本文详细解析了VisionPro在工业视觉检测中的5个实战案例,包括PCB焊点质量检测、汽车齿轮尺寸测量、药品包装缺陷检测等。通过硬件配置方案和软件算法流程的详细介绍,帮助工程师快速掌握VisionPro的应用技巧,提升工业自动化检测效率。

weixin_29284657的博客 518

定制类(魔法方法)

定制类(魔法方法) Python的class中还有许多这样有特殊用途的函数,可以帮助我们定制类 _str_ class Student(object): def __init__(self, name): self.name = name print(Student('Michael')) <__main__.St...

weixin_30492601的博客 225

ZED双目相机环境配置

ZED SDK 安装文件夹中有一个 Python 脚本(get_python_api.py),可以自动检测操作系统、CUDA 和 Python 版本并下载相应的预编译 Python API 包(pyzed)。安装SDK成功后,我们进入ZED SDK文件夹中的tools子文件夹,运行ZED Explorer.exe 以及 ZED Depth Viewer.exe,查看ZED相机是否能正常启用工作。在本例中,我们简单地检索ZED相机的序列号:打开 ZED相机,然后打印其序列号,然后关闭相机。

qq_53545309的博客 2134

如何通过conda安装HyPhy教程

本文介绍了在Ubuntu系统上通过conda安装分子进化分析工具HyPhy的详细步骤。首先创建conda环境并指定Python 3.8版本,然后通过bioconda通道安装HyPhy软件包。安装完成后可通过conda list命令验证安装。文中还特别指出可能遇到的libcrypto.so.1.1共享库缺失错误,并提供了解决方案的参考链接。该教程配有安装过程截图,帮助用户直观了解操作流程和验证安装结果。

猿小白的博客 8259

Python机器学习:从零基础到项目实战

当您翻开此书,您正踏入一场数据与智慧的修行。机器学习,并非冰冷的符码,而是机器模拟人类洞察世界的法门。本书将带您,以Python为舟,泛游于算法之海。我们不只传授“术”,更探求其后的“道”——从数据的生灭流转中观照规律,于模型的迭代演进里体悟得失。愿您合上书卷时,收获的不仅是驾驭数据的技能,更有一双洞悉复杂、化繁为简的“智慧之眼”。现在,让我们一同启程。

YunWisdom 963

波士顿房价预测分析----以线性回归LinearRegression为例

波士顿房价数据集包括506个样本,每个样本包括13个特征变量和该地区的平均房价,房价显然和多个特征变量相关,先选择一元线性回归与多个特征建立线性方程,观察模型预测的好坏,再选择多元线性回归进行房价预测。13个特征变量缩写含义CRIM城镇人均犯罪率ZN住宅用地所占比例INDUS城镇中非住宅用地所占比例CHAS虚拟变量,用于回归分析NOX环保指数RM每栋住宅的房间数AGE1940 年以前建成的自住单位的比例DIS距离 5 个波士顿的就业中心的加权距离RAD。

我走的每一步都算数 842

课后作业-团队编程项目进度

1. Python代码: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 ...

weixin_30746117的博客 114

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

测试代码的执行时间:%time和%timeit

对于规模更大、运行时间更长的数据分析应用程序,你可能会希望测试一下各个部分或函数调用或语句的执行时间。你可能会希望了解某个复杂计算过程中到底是哪些函数占用的时间最多。幸运的是,在开发和测试代码的过程中,IPython能够让你轻松得到这些信息。使用内置的time模块及其time.clock和time.time函数手工测试代码执行时间是一件令人烦闷的事情,因为你必须编写许多一模一样的了无生趣的公式化代

AnneQiQi的博客 1万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

洗礼灵魂,修炼python(23)--自定义函数(4)—闭包进阶问题—>报错UnboundLocalError: local variable 'x' referenced before assign

闭包(lexical closure)什么是闭包前面已经说过了,但是由于遗留问题,所以单独作为一个章节详解讲解下不多说,看例子:def funx(x): def funy(y): return x*y #此时的funy函数对外层funx函数的变量调用,则称为闭包 return funy 结果:&gt;&gt;&gt; i=funx(4) &gt;&gt;&g...

app安全逆向、移动开发、tls/ja3、爬虫、反爬 2721

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

洗礼灵魂,修炼python(10)--有趣的判断分支+从实例中掌握循环语句

所有的编程语言里都有判断语句和循环语句。判断语句则是用来分支程序流程的循环语句则是为了实现一个效果,让程序的规律性的重复操作不用说,分支和循环自然在python里也是有的一,条件判断:if,if……else1.在python里if可以单独出现,也可以和else配套出现,但是else不能单独出现这里则要提到一个在编程里一个共有的特性:悬挂else:即出现多余或者不和if匹配的else,就叫悬挂els...

app安全逆向、移动开发、tls/ja3、爬虫、反爬 794

洗礼灵魂,修炼python(14)--模块decimal, fractions,operator,collections以及精度介绍

decimal1.作用:用于浮点数计算。相比内置的二进制浮点数实现 float这个类型有助于 金融应用和其它需要精确十进制表达的场合,控制精度,控制舍入以适应法律或者规定要求,确保十进制数位精度,或者用户希望计算结果与手算相符的场合。Decimal 重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。 高精度使 Decimal 可以执行二进制浮点数无法进行的模运算和等值测试2.函数...

app安全逆向、移动开发、tls/ja3、爬虫、反爬 644

洗礼灵魂,修炼python(1)--python简介

首先,本人也是刚接触python短短几个月,没有老鸟的经验和技能,大佬勿喷,以下所有皆是本人对python的理解 python,是一种解释型(高级)的,面向对象的,带有动态语义的高级程序设计的开源语言。1989年,Guido von Rossum(荷兰人)人称龟叔,他在圣诞节时因为无聊而开发出来的,详细的python发展史介绍可以百度或Google,已经很多了,不再赘述。 python是从20

app安全逆向、移动开发、tls/ja3、爬虫、反爬 592

洗礼灵魂,修炼python(7)--元组,集合,不可变集合

前面已经把列表的基本用法讲解完接着讲python的几大核心之——元组(tuple)1.什么是元组?类似列表,但为不可变对象,之前提到列表是可变对象,所谓可变对象就是支持原处修改,并且在修改前后对应的内存空间里的id依然不变,而不可变对象就是不支持原处修改,得重新赋值才行,但在重新赋值的时候,内存ID已经发生改变。元组的特征是什么呢?下面会解释!2.创建元组的两种方式:注意:元组的特征是()没错,但...

app安全逆向、移动开发、tls/ja3、爬虫、反爬 520

洗礼灵魂,修炼python(15)--列表进阶话题—>列表解析/列表生成器

是的,我是想到什么知识点就说什么,没有固定的主题,我的标题都是在写完博客再给的。本篇博文说说列表进阶话题。其实列表应该是比较熟悉的了,而毫不夸张的说,在实际的开发中,列表也是使用的最多的,以后你会体会到我说的这句话的。列表解析1.什么是列表解析:根据已有列表,高效生成新列表的方式,还有另一个叫法是叫列表推导式2.作用:列表解析是python迭代机制的一种应用,它常用于实现创建新的列表,因此要放置在...

app安全逆向、移动开发、tls/ja3、爬虫、反爬 512

洗礼灵魂,修炼python(35)--面向对象编程(5)—多重继承,组合

多重继承关于继承在上一篇博文已经说过了,怎么继承相信你也懂了。那么进入进阶话题,多重继承1.什么是多重继承继承的概念你清楚,那么多重继承就简单了。我的理解就是子类继承多个基类2.怎么多重继承定义多个基类,然后子类定义时继承多个基类,这就是多重继承。例1: 其实就和前面的一般继承是一样的对吧?就只是传入的基类由一个成了两个或多个而已 例2:定义一个儿子继承父母特征的子类class Human: ...

app安全逆向、移动开发、tls/ja3、爬虫、反爬 494

洗礼灵魂,修炼python(19)--文件I/O操作,linecache,fileinput模块

文件I/O操作1.什么是文件I/O操作首先I/O(input/output),即输入/输出端口,然后文件,大家应该都是是什么,一个数据,一个txt或者html文档就是一个文件。文件操作就是对文件进行读写删除等的操作。文件I/O操作,个人理解,就是与用户有交互式的文件操作,换句话就是读写操作文件也是一个可迭代对象2.有哪些操作:1):I/O操作:raw_input函数,input函数即可以进行I/O...

app安全逆向、移动开发、tls/ja3、爬虫、反爬 478

洗礼灵魂,修炼python(3)--从一个简单的print代码揭露编码问题,运行原理和语法习惯

前期工作已经准备好后,可以打开IDE编辑器了,你可以选择python自带的IDLE,也可以选择第三方的,这里我使用pycharm——一个专门为python而生的IDE按照惯例,第一个python代码打印一个所有开发语言里入门必学“hello,world”?no,你错了,我偏不 第一行是编码,utf-8这是国际使用标准,如果我不加的话,很容易出错第二行print(打印的意思)语句,是python的关...

app安全逆向、移动开发、tls/ja3、爬虫、反爬 449

洗礼灵魂,修炼python(18)--温故加知新

类型转换:1.str(),repr(),format():将非字符串数据转换为字符串str():对象序列化的结果,相当于print输出repr():程序中某个对象精确值format():利用特定格式转换为字符串,format函数用法见后面2.int():转为整数形int函数也可以使用进制:(这个在前面已经提到过的)  Int转换类型并给定进制的方法,并不是都可行: 3.complex():转换为复...

app安全逆向、移动开发、tls/ja3、爬虫、反爬 447
上一篇: 洗礼灵魂,修炼python(39)--面向对象编程(9)—魔法方法表
下一篇: python爬虫 - js逆向解密之破解搜索字段加密
geekbyte.
博客等级 码龄11年 308粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值