You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3同文件如何调用Solution类?romanToInt函数头语法含义

Python3 罗马数字转整数类相关问题解答

首先附上参考实现代码:

class Solution:
    def romanToInt(self, s: str) -> int:
       roman_map = {
        'I' : 1,
        'V' : 5,
        'X' : 10,
        'L' : 50,
        'C' : 100,
        'D' : 500,
        'M' : 1000
        } 
       result  = 0
       tmp = 0
       i = 0

       while i < len(s):
           tmp = roman_map[s[i]]
           if (i +1) < len(s) and roman_map[s[i]] < roman_map[s[i + 1]]:
               tmp = roman_map[s[i + 1]] - roman_map[s[i]]
               i += 1
           i += 1
           result += tmp

       print(result)

注:原代码使用dict作为字典变量名会覆盖Python内置字典类型,上述代码已将变量名修改为roman_map避免命名冲突。


问题1:同Python文件内调用该Solution类的方法

Python是解释型语言,调用类之前必须保证类的定义已经被执行,调用步骤如下:

  • 保证Solution类的定义写在调用代码之前
  • 对Solution类进行实例化,得到类的实例对象
  • 通过实例对象调用romanToInt方法,传入符合罗马数字规则的字符串参数即可

调用示例(写在同一个.py文件、类定义的下方即可):

if __name__ == "__main__":
    # 实例化Solution类
    solution = Solution()
    # 调用转换方法,传入罗马数字字符串
    solution.romanToInt("III") # 执行后打印3
    solution.romanToInt("IV") # 执行后打印4
    solution.romanToInt("MCMXCIV") # 执行后打印1994

补充说明:当前实现的方法直接在内部打印结果,如果需要拿到转换后的整数值做后续逻辑处理,可以把方法末尾的print(result)修改为return result,调用时就可以用变量接收结果,例如num = solution.romanToInt("MCMXCIV")。


问题2:romanToInt方法头部的语法含义

方法头部完整写法为def romanToInt(self, s: str) -> int:,各部分语法含义拆分如下:

  • def:Python中用于定义函数、类方法的固定关键字
  • romanToInt:自定义的方法名称,遵循Python标识符命名规则
  • self:Python类实例方法的第一个必填固定参数,代表当前创建的类实例本身;调用方法时不需要手动传入该参数,Python解释器会自动完成实例绑定
  • s: str:参数类型注解,用于提示调用者该位置需要传入字符串类型的参数;类型注解仅做语法提示,不会强制做类型校验,传入非字符串类型时Python不会直接抛出语法错误,除非方法内部逻辑不兼容对应类型才会报运行时异常
  • -> int:返回值类型注解,用于提示调用者该方法执行后会返回整数类型的结果,同样属于提示性质,不做强制运行时校验

内容的提问来源于stack exchange,提问作者ASHWIN NAIR - IMS20066

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 23:15:59