鱼C论坛

 找回密码
 立即注册
查看: 1218|回复: 8

[已解决]类中属性的访问

[复制链接]
发表于 2020-6-27 18:10:46 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
class Turtle:                                    
    def ini(self):
        a=100

class Turtle:
    def ini(self,x):
        self.a=100
这个a和self.a应该如何访问来着?学完一遍在复习有些遗忘
最佳答案
2020-6-27 18:18:48
本帖最后由 Twilight6 于 2020-6-27 18:24 编辑



第一个 a 是无法访问的, 是局部变量

你是不是把方法打错了....应该是 init 吧
class Turtle:
    def __init__(self,x):
        self.x = x
        self.a=100

t = Turtle(5)
print(t.a)
print(t.x)

或者这样:
class Turtle:
    def __init__(self):
        self.a=100

t = Turtle()
print(t.a)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-27 18:18:48 | 显示全部楼层    本楼为最佳答案   
本帖最后由 Twilight6 于 2020-6-27 18:24 编辑



第一个 a 是无法访问的, 是局部变量

你是不是把方法打错了....应该是 init 吧
class Turtle:
    def __init__(self,x):
        self.x = x
        self.a=100

t = Turtle(5)
print(t.a)
print(t.x)

或者这样:
class Turtle:
    def __init__(self):
        self.a=100

t = Turtle()
print(t.a)

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-27 18:22:21 | 显示全部楼层
__init__ 方法的第一参数永远是 self,表示创建的类实例本身
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-6-27 18:52:55 | 显示全部楼层
Twilight6 发表于 2020-6-27 18:18
第一个 a 是无法访问的, 是局部变量

你是不是把方法打错了....应该是 init 吧

哈哈哈 没有打错 我就是想问这种怎么访问,不过现在看来好像是我记错了..
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-27 18:54:04 | 显示全部楼层
Twilight6 发表于 2020-6-27 18:18
第一个 a 是无法访问的, 是局部变量

你是不是把方法打错了....应该是 init 吧

第二个那个self.a可以外部访问嘛?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-27 18:59:22 | 显示全部楼层
今天的我更强了 发表于 2020-6-27 18:54
第二个那个self.a可以外部访问嘛?

  应该说是外部访问内部吧...内部怎么访问外部   哈哈哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-27 19:02:48 | 显示全部楼层
Twilight6 发表于 2020-6-27 18:59
应该说是外部访问内部吧...内部怎么访问外部   哈哈哈哈


就是可以从外部访问self.a的值吗?
就和下面这样
class A():
    name='a'
b=A()
b.name
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-27 19:11:33 | 显示全部楼层
今天的我更强了 发表于 2020-6-27 19:02
就是可以从外部访问self.a的值吗?
就和下面这样
class A():

可以呀,但是要通过 __init__ 先进行初始化才行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-6-27 19:15:06 | 显示全部楼层
Twilight6 发表于 2020-6-27 19:11
可以呀,但是要通过 __init__ 先进行初始化才行

懂了 好的谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 05:55

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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