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
相关产品推荐
相关产品推荐

