hwang.me 发表于 2020-5-26 16:50:10

小甲鱼视频教学, 有个地方没看懂



这是小甲鱼的代码, 我想问一下: 第一行 CapStry 继承了str, 为什么在调用实例化的时候, 直接就吧参数"I love FishC...,传给类了啊, 这里不是应该是类里边定义的方法__new__吗, 是它接受一个string的参数呀。 大佬请帮助小萌新理解, 爱你们"   {:10_298:}

青出于蓝 发表于 2020-5-26 16:55:25

首先,upper就是将小写字母转化成大写字母

Twilight6 发表于 2020-5-26 17:00:12

本帖最后由 Twilight6 于 2020-5-26 17:03 编辑

你这实例化有个必要参数 就是 string,如果你不填就会因为缺少参数而报错

你实例化对象时候 已经把字符串 'I love FishC.com!' 作为参数 传递给了 类对象 CapStr所以 a 是你已经传入I love FishC.com!字符串后的实例化对象

你说的 string 参数就是拿来接收 ‘I love FishC.com!’ 的哦

青出于蓝 发表于 2020-5-26 17:00:17

string参数,实际参数就是a。
经过函数转大写后,在输出。

青出于蓝 发表于 2020-5-26 17:01:06

我也刚好看到类和对象,也是我的个人理解~

朝朝辞暮 发表于 2020-5-26 17:04:52

{:10_249:}{:10_249:}{:10_249:}

Stubborn 发表于 2020-5-26 17:26:13

**__new__ **是对象实例化时第一个调用的方法,它只取下 cls 参数,并把其他参数传给 __init__
第一个参数cls是当前正在实例化的类。
    如果要得到当前类的实例,应当在当前类中的 __new__() 方法语句中调用当前类的父类的 __new__() 方法
    例如,如果当前类是直接继承自 object,那当前类的 __new__() 方法返回的对象应该为:
    def __new__(cls, *args, **kwargs):
      ...
      return object.__new__(cls)

hwang.me 发表于 2020-5-27 15:28:09

青出于蓝 发表于 2020-5-26 08:55
首先,upper就是将小写字母转化成大写字母

这个我是知道的大佬。。。

hwang.me 发表于 2020-5-27 15:31:41

Twilight6 发表于 2020-5-26 09:00
你这实例化有个必要参数 就是 string,如果你不填就会因为缺少参数而报错

你实例化对象时候 已经把字符 ...

我是不是可以理解 这里定义的CapStr(str) 其实是CapStr()这个类继承了str这个父类?

hwang.me 发表于 2020-5-27 15:32:13

青出于蓝 发表于 2020-5-26 09:01
我也刚好看到类和对象,也是我的个人理解~

哈 谢谢你, 加油哈,一起学起来

Twilight6 发表于 2020-5-27 15:34:34

hwang.me 发表于 2020-5-27 15:31
我是不是可以理解 这里定义的CapStr(str) 其实是CapStr()这个类继承了str这个父类?

对滴,如果帮助到你就给个最佳~{:10_297:}

青出于蓝 发表于 2020-5-27 16:18:17

hwang.me 发表于 2020-5-27 15:32
哈 谢谢你, 加油哈,一起学起来

谢谢~
页: [1]
查看完整版本: 小甲鱼视频教学, 有个地方没看懂