鱼C论坛

 找回密码
 立即注册
查看: 2930|回复: 7

phthon中类的问题

[复制链接]
发表于 2015-3-24 16:58:43 | 显示全部楼层 |阅读模式
11鱼币
class R:
        def __init__(self):

                print('R is construct')
        def test(self):
                print("is r ")


class T(R):

        def test(self):
                super().test()
                print("is t")

k=T()
k.test()
k.name=("fdssdf")
最后一行,我没有在类中定义name,  python怎么就让我过去了呢?

最佳答案

查看完整内容

不一定要在类中定义了变量才能在实例对象中调用该属性的,如果没有在类中定义变量,然后在实例对象中对那个属性赋值时,实例对象中会增加这个属性,不过该属性只是属于实例对象。 你这种情况在k这个实例对象中多了name = "fdssdf"这个属性。 你可以自己写k.name验证一下。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-3-24 16:58:44 | 显示全部楼层
不一定要在类中定义了变量才能在实例对象中调用该属性的,如果没有在类中定义变量,然后在实例对象中对那个属性赋值时,实例对象中会增加这个属性,不过该属性只是属于实例对象。
你这种情况在k这个实例对象中多了name = "fdssdf"这个属性。
你可以自己写k.name验证一下。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2015-3-24 23:01:43 | 显示全部楼层
Linkin_xiao 发表于 2015-3-24 22:04
不一定要在类中定义了变量才能在实例对象中调用该属性的,如果没有在类中定义变量,然后在实例对象中对那个 ...

这样做在大型的程序里面很危险,有没有办法让它不增加属性?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-4-9 09:09:19 | 显示全部楼层
k.name="xxxx",相当于给对象k添加了属性name.
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-4-9 23:11:47 | 显示全部楼层
先把标题写正确了。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-4-20 23:07:39 | 显示全部楼层
刚开始学到前几章 不太懂
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2015-7-8 14:39:17 | 显示全部楼层
实例对象增加class没有的属性是没有问题的
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-4-4 09:52:29 | 显示全部楼层
我开始怀疑了,Python究竟是不是最容易学的编程语言。那会选择Python都说是最简单的,可是学了一个月了,表示完全不懂。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2026-2-15 09:12

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表