鱼C论坛

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

[已解决]请问怎么在实例对象中添加字符串

[复制链接]
发表于 2018-4-20 11:52:43 | 显示全部楼层 |阅读模式

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

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

x
我想实现代码中被备注的那一行,但是怎么能把名字这种字符串输入进去呢?
我执行之后,总是告诉我name没有什么的。。
谢谢!下面是我自己写的小代码。。有错误请指教
  1. class Person:
  2.     def __init__(self):
  3.         name = 'shuo'
  4.         tall = '168'
  5.         weight = '53'

  6.     def show(self,x,y):
  7.     #def show(self,'',x,y):
  8.         #self.name = str('')
  9.         self.tall = x
  10.         self.weight = y
  11.         #print("%s 的身高是 %d cm,体重是 %d kg" % (self.name,self.tall,self.weight))
  12.         print("身高是 %d cm,体重是 %d kg" % (self.tall,self.weight))
复制代码
最佳答案
2018-4-23 11:01:36
牛肉包儿 发表于 2018-4-23 10:45
你好,我想实现的功能是给这个身高体重加上名字。就是下面这个代码实现的功能

hi 原因如下

你的代码中语法存在问题,需要修改 def show(self,"",x,y): 及 相关代码,示例如下

  1. class Person:
  2.     def __init__(self):
  3.         self.name = 'shuo'
  4.         self.tall = '168'
  5.         self.weight = '53'

  6.     #def show(self,"",x,y):
  7.     def show(self,x,y,z):
  8.         self.name = x
  9.         self.tall = y
  10.         self.weight = z
  11.         print("%s 的身高是 %d cm,体重是 %d kg" % (self.name,self.tall,self.weight))
  12.         #print("身高是 %d cm,体重是 %d kg" % (self.tall,self.weight))
  13.         
  14. p = Person()
  15. p.show('guan',190,78)
复制代码


>>>
guan 的身高是 190 cm,体重是 78 kg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-4-20 11:57:14 | 显示全部楼层
在 init函数中的所有编码初始化前面加上
self.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-20 12:11:35 | 显示全部楼层
class Person:
    def __init__(self):
        self.name = 'shuo'
        self.tall = '168'
        self.weight = '53'

    def show(self,x,y):
    #def show(self,'',x,y):
        #self.name = str('')
        self.tall = x
        self.weight = y
        print("%s 的身高是 %d cm,体重是 %d kg" % (self.name,self.tall,self.weight))
        # print("身高是 %d cm,体重是 %d kg" % (self.tall,self.weight))
per1 = Person()
per1.show(56,55)
你看看我重新的那里不懂
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-20 21:37:59 | 显示全部楼层
hi 是如下的报错吗?如果是的话,因为 def show(self,x,y): 有x,y两个参数,因此使用show函数时也需要手动输入两个参数,否则会提示你缺少对应的参数

TypeError: show() missing 2 required positional arguments: 'x' and 'y'
>>> p.show(11,22)
身高是 11 cm,体重是 22 kg

另外,魔法方法__init__中的属性全部都是类属性,并非实例对象属性,如果你想用的是实例对象属性,其前面都要加上self,如下:
self.name = 'shuo'
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-23 10:45:06 | 显示全部楼层
thexiosi 发表于 2018-4-20 21:37
hi 是如下的报错吗?如果是的话,因为 def show(self,x,y): 有x,y两个参数,因此使用show函数时也需要手动 ...

你好,我想实现的功能是给这个身高体重加上名字。就是下面这个代码实现的功能
  1. class Person:
  2.     def __init__(self):
  3.         self.name = 'shuo'
  4.         self.tall = '168'
  5.         self.weight = '53'

  6.     #def show(self,x,y):
  7.     def show(self,"",x,y):
  8.         self.name = str('')
  9.         self.tall = x
  10.         self.weight = y
  11.         print("%s 的身高是 %d cm,体重是 %d kg" % (self.name,self.tall,self.weight))
  12.         #print("身高是 %d cm,体重是 %d kg" % (self.tall,self.weight))
  13.         
  14. p = Person()
  15. p.show('guan',190,78)
复制代码


但是name那一块总是提示错误,原来是提示说show里不能添加字符串,后来改了一下,变成了下面图片这样:
1.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-4-23 10:45:48 | 显示全部楼层
华丽转身123 发表于 2018-4-20 12:11
class Person:
    def __init__(self):
        self.name = 'shuo'

你好,当想实现#后面这个功能时,应该怎么实现呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-4-23 11:01:36 | 显示全部楼层    本楼为最佳答案   
牛肉包儿 发表于 2018-4-23 10:45
你好,我想实现的功能是给这个身高体重加上名字。就是下面这个代码实现的功能

hi 原因如下

你的代码中语法存在问题,需要修改 def show(self,"",x,y): 及 相关代码,示例如下

  1. class Person:
  2.     def __init__(self):
  3.         self.name = 'shuo'
  4.         self.tall = '168'
  5.         self.weight = '53'

  6.     #def show(self,"",x,y):
  7.     def show(self,x,y,z):
  8.         self.name = x
  9.         self.tall = y
  10.         self.weight = z
  11.         print("%s 的身高是 %d cm,体重是 %d kg" % (self.name,self.tall,self.weight))
  12.         #print("身高是 %d cm,体重是 %d kg" % (self.tall,self.weight))
  13.         
  14. p = Person()
  15. p.show('guan',190,78)
复制代码


>>>
guan 的身高是 190 cm,体重是 78 kg
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-4-23 15:29:07 | 显示全部楼层
show(..""..),就不对。穿进去的是变量名,不是实际对象。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2018-4-23 16:24:12 | 显示全部楼层
thexiosi 发表于 2018-4-23 11:01
hi 原因如下

你的代码中语法存在问题,需要修改 def show(self,"",x,y): 及 相关代码,示例如下

哦哦,明白了。字符串不用特别在方法里指明,可以和数字一样当成属性输入。谢谢啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 09:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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