| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3726 人关注过本帖
标题:python入门的一些问题 向各位大神请教
只看楼主 加入收藏
n172474108
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2016-8-28
结帖率:0
收藏
 问题点数:0 回复次数:1 
python入门的一些问题 向各位大神请教
from random  import choice
class RandomWalk():
    def _init_(self,num_points=5000):
        self.num_points=num_points
        self.x_values=[0]
        self.y_values=[0]
    def fill_walk(self):
        while len(self.x_values)<self.num_points:


            x_direction=choice([1,-1])
            x_distance=choice([0,1,2,3,4])
            x_step=x_direction * x_distance
            y_direction=choice([1,-1])
            y_distance=choice([0,1,2,3,4])
            y_step=y_direction * y_distance
            if x_step==0 and y_step==0:
                continue
            next_x=self.x_values[-1]+x_step
            next_y=self.y_values[-1]+y_step
            self.x_values.append(next_x)
            self.y_values.append(next_y)



Traceback (most recent call last):
  File "rw_visual.py", line 4, in <module>
    rw.fill_walk()
  File "E:\python_work\random_walk.py", line 8, in fill_walk
    while len(self.x_values)<self.num_points:
AttributeError: 'RandomWalk' object has no attribute 'x_values'

------------------
(program exited with code: 1)
请按任意键继续. . .


求大神解答 ,这个问题怎么解决?
搜索更多相关主题的帖子: python choice import 
2017-04-03 10:46
sunb3
Rank: 2
来 自:北京
等 级:论坛游民
威 望:3
帖 子:34
专家分:94
注 册:2017-4-20
收藏
得分:0 
回复 楼主 n172474108
目标对象“使用了未定义的变量”。
因为你没有给出完整的代码,所以我不知道你实际实例化对象的过程。不过我个人觉得应该是以下原因的其中一种:

1、没有写构造函数
2、你没有先实例化对象





1、构造函数的init前后要用两个下划线,即“__init__”,我不知道你这个“_init_”是不是构造函数,如果是请更正
2、如果你的确额外指定了"__init__"构造对象,那问题应该就是出在__init__过程中了,具体要看代码来确认症结

另外,设置成属性应该更好一些:

程序代码:
from random  import choice
class RandomWalk():
    X,Y = "x_values","y_values"
    def _init_(self,num_points=5000):
        self.num_points=num_points
        self.X=[0]
        self.Y=[0]
    def fill_walk(self):
        while len(self.X)<self.num_points:
            #...
            self.X.append(next_x)
            self.Y.append(next_y)


这样如果X在操作过程中出了问题(比如提前被释放了,或者没赋值),POINT.X会还原显示“x_value”,方便查找问题点。

除了基础……我什么都不会……
2017-04-24 11:33
快速回复:python入门的一些问题 向各位大神请教
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.053629 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved