首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Enemy类有函数combat_roll(),但似乎无法访问它Python2.7

在Python 2.7中,如果Enemy类有函数combat_roll(),但无法访问它,可能是由于以下几个原因:

  1. 访问权限问题:检查一下combat_roll()函数是否被定义为私有函数(以双下划线开头),这样的话只能在类内部访问。如果是私有函数,可以考虑将其改为公有函数(不以双下划线开头)。
  2. 类实例化问题:确保你已经正确地实例化了Enemy类的对象。如果没有实例化对象,就无法访问类的函数。可以尝试创建一个Enemy类的实例,并通过该实例来调用combat_roll()函数。
  3. 继承关系问题:如果Enemy类是从其他类继承而来的,可能是继承关系导致无法访问combat_roll()函数。检查一下继承关系,确保没有被继承的父类中定义了与combat_roll()函数同名的函数,导致函数被覆盖。
  4. 函数命名错误:检查一下函数名是否拼写正确,并且确保没有使用错误的大小写。Python对大小写是敏感的,所以函数名要与定义时一致。

如果以上解决方法都无效,可能需要更多的代码和上下文信息来进一步分析问题。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

php面向对象基础详解【星际争霸游戏案例】

攻击力比较麻烦,因为经过升级,攻击力会增加,这就必须要找出所有表示机枪兵的数组,然后进行修改,非常麻烦。 从这里我们可以看出一件事情,首先每个机枪兵独立的数据需要记录和修改,比如剩余的血。...不同的内可以用同名的函数,比如小狗的Zergling里面也可以一个函数attack 要注意的是,从PHP5开始,无论在哪里改变一个对象的属性,都能改变。...比如上面一个小狗对象被作为参数传入机枪兵的attack函数,执行函数之后这个小狗对象的血减少了,这和一般的函数不同。这是很直观的,如果一个小狗被攻击了,的血就应该减少。...但是现在往往是团队开发,而且很多用到的继承,如果private的话,子类就无法访问了,但又不希望随便都可以修改某些属性。...如果我们把隐形能力作为父,鬼兵ghost和神族类的黑暗圣堂DarkTemplar来继承,同时实现不同的隐形代码: <?

1.1K40

python面向对象之继承与派生

object,object是所有python的基提供了一些常见方法(如__str__)的实现。...'Noxus' 注意:对于这一层面的封装(隐藏),名.和实例名.就是访问隐藏属性的接口 第二个层面的封装:中把某些属性和方法隐藏起来(或者说定义成私有的),只在的内部使用、外部无法访问...注意:对于这一层面的封装(隐藏),我们需要在中定义一个函数(接口函数)在内部访问被隐藏的属性,然后外部就可以使用了 这种变形需要注意的问题是: 1.这种机制也并没有真正意义上限制我们从外部直接访问属性...,可以重用父的功能 在子类中,重用父函数,父名.父函数(参数) 1 2 3 4 5 6 7 8 9 10 11...,称为的组合 组合对比继承来说,也是用来重用代码,但是组合描述的是一种“有的关系” 2.1 组合的方式: 用组合的方式建立了与组合的之间的关系,它是一种‘’的关系,比如老师学生python课程

50020

python面向对象基础-01

在活字印刷术还没出现之前,如果版样改动,只能重新雕刻。而且在印刷完成后,这个样板就失去了的价值,如果需要其他样板只能重新雕刻。而活字印刷术的出现就大大改善了印刷技术。...对象就是特征和技能的结合体 ''' 和对象的关系 ''' 包含一系列对象 对象属于某个 在现实中先有对象再有,程序中先有再有对象 我们必须先告诉计算机这类的对象什么特征什么行为...当使用名来调用时就是一个普通函数几个参数就传几个参数 绑定方法:@classmethod cls(加上@classmethod装饰后自己将self改为cls...当函数逻辑需要访问对象中的数据时 何时绑定给:当函数逻辑需要访问中的数据时 非绑定方法:@staticmethod 装饰成普通函数,不管谁调都一样...可以获取 __init__ 函数名称空间里的那些名字,他是一个字典 lcs.pop('self') # 发现上面的 locals() 多了一个 self 是不需要的,那就把删掉

45530

使用Pygame在Python游戏中放置平台【Gaming】

你的平台等级需要知道很多关于你想要的平台,应该出现在游戏世界的什么地方,以及应该包含什么图像的信息。很多信息可能还不存在,这取决于你计划了多少游戏,没关系。...确实涉及到数学,没有什么太难的,而且Python擅长数学,所以它可以帮助一些人。 你可能会发现先在纸上设计是帮助的。找一张纸,画一个盒子来代表你的游戏窗口。...平台出现在每个级别的开始处的屏幕上,因此必须在中添加一个函数。这里的特例是地面平台,其重要性足以被视为自己的平台组。...函数使用在屏幕上生成一个对象,然后将该对象添加到平台地面清单组中。 这个函数本质上是相同的,只是更多的平台可以列出。在这个例子中,只有两个,但是您可以拥有任意多个。...正如您现在可能知道的,如果不使用它们,您的函数都没有多大价值。

2.6K40

VUE+WebPack前端游戏设计:实现外星人的动态下滑特效

首先我们先创建外星人的对象,在gamesceneComponent.js中添加如下代码: enemy () { var enemyObj = new this.cjs.Container...在函数中配置了外星人对象的一些基本属性,例如speed代表下落速度的快慢,daageDeal表示外星人的攻击力等。...这个函数用于创建外星人的原型,我们继续添加代码在原型的基础上增加配置,进而实现不同种类的外星人: enemyTick (enemyObj) { if (this.cjs.Ticker.getPaused...这两个函数分别给enemy返回的容器对象加载不同的图片资源,然后配置不同的属性,例如速度,攻击力等,enemyDummy生成战斗力较弱的外星人,的速度和攻击力都要比boss生成的外星人低。...boardTick函数会在Tick函数里调用,Tick函数是游戏主循环不断调用的刷新函数,因此boardTick的调用频率跟Tick一样,于是一旦执行就可以不断的修改外星人对象的坐标,进而形成下落效果

54420

Python面向对象

两种属性:数据属性和函数属性 其中的数据属性是共享给所有对象的 定义在内部的变量,是所有对象共有的,id全一样 print(id(r1.camp)) #本质就是在引用的camp属性,二者id一样...继承两种用途: ①继承基的方法,并且做出自己的改变或者扩展(代码重用); ②声明某个子类兼容于某基,定义一个接口Interface,接口中定义了一些接口名(就是函数名)且并未实现接口的功能...模块中的函数: abc.ABCMeta  这是用来生成抽象基础的元。由生成的可以被直接继承。...(或者说定义成私有的),只在的内部使用、外部无法访问,或者留下少量接口(函数)供外部访问。...注意:对于这一层面的封装(隐藏),我们需要在中定义一个函数(接口函数)在内部访问被隐藏的属性,然后外部就可以使用了.

1.2K11

【响应式编程的思维艺术】 (4)从打飞机游戏理解并发与流的融合

当不同的流之间出现共享的外部依赖时,一般的实现思路两种: 将这个外部状态独立生成一个可观察对象,然后根据实际逻辑需求使用正确的流合并方法将其合并。...Subject Subject同时具备Observable和observer的功能,可订阅消息,也可产生数据,一般作为流和观察者的代理来使用,可以用来实现流的解耦。...ReplaySubject ReplaySubject会缓存监听的流发出的值,然后将其发送给任何较晚的Observer,它可以通过在构造函数中传入参数来实现缓冲时间长度的设定。 二....然后去和原文中的代码作对比,好搞清楚哪些东西是真的理解了,哪些只是你以为自己理解了,接着找一些很明显的优化点,继续使用响应式编程的思维模式来试着实现它们,起初不知道从何下手是非常正常的(当然也可能是笔者的自我安慰),这对于培养响应式编程思维习惯大有裨益...参考代码及Demo说明 demo中的index.html是学习原文时拷贝的代码,mygame中的代码是笔者写的,需要的读者自行使用即可。

85740

教程 | 一个基于TensorFlow的简单故事生成案例:带你了解LSTM

由于对长期依赖问题的鲁棒性,长短期记忆(LSTM)是一已经实际应用的循环神经网络。现在已有大量关于 LSTM 的文章和文献,其中推荐如下两篇: Goodfellow et.al....与此形成对比,相对缺乏的似乎是关于如何基于 LSTM 建立易于理解的 TensorFlow 应用的优秀文档和示例,这也是本文尝试解决的问题。...输出的生成看起来似乎简单,实际上 LSTM 为下一个符号生成了一个含有 112 个元素的预测概率向量,并用 softmax() 函数归一化。...令人惊讶的是,很易于用 TensorFlow 实现: def RNN(x, weights, biases): # reshape to [1, n_input] x = tf.reshape...令人惊讶的是,LSTM 创作出了一个一定含义的故事。

1.2K90

Unity BehaviorDesigner行为树基础总结

下面总结BehaviorDesigner最常见的基础知识: 首先要明确一个行为树必须有一个依赋对象,诠释的是该对象的一系列行为模式。...所以在设计行为树时,一般会把优先级高的Task节点置于行为树的左侧,将优先级低的置于右侧,因为复合节点并不能打断比该优先级高的Task节点。...BehaviorDesigner.Runtime.Tasks; 2.明确继承的Task类型: public class MyInputMove : Action public class MyIsInput : Conditional 3.知晓Task内部函数的执行流程...Share类型何区别呢?...比如这里,每次找到的最近的敌人是不一样的,要根据上一个Task返回的值去执行下一个Task的攻击或打印结果,这时固定的属性就无法满足要求,直接调用别的Task又增加了耦合性,于是就单独用Share变量来传递值

1.4K20

python红蓝英雄大乱斗(面向对象实现)

红蓝英雄大乱斗 游戏规则 ''' 红蓝两方英雄(可自定义个数) 随机一方英雄使用随机攻击方式攻击另一方英雄,任意一方英雄全部阵亡则游戏结束 每个英雄 名字、生命值、普通攻击、...: print(f"{hero.name} 剩余生命值 {hero.health}") 带注释版的代码 import random import time # 定义一个英雄,...表示英雄这一的共同特征 class Hero: def __init__(self, name, health, attack, q_hurt, w_hurt, e_hurt):...可以获取 __init__ 函数名称空间里的那些名字,他是一个字典 lcs.pop('self') # 发现上面的 locals() 多了一个 self 是不需要的,那就把删掉...(1, 4) # random_skill = skill_list.get(random_index) # return random_skill # 函数名当做返回值返回,拿到可以直接加括号调用执行函数

43030

500行代码,教你用python写个微信飞机大战

帮助蹲厕族、YP族、饭圈女孩在无聊之余可以一样东西让他们振作起来!让他们的左手 / 右手节奏韵律的朝着同一个方向来回移动起来!...实现DestroyAnimationMixin,这个主要是用来显示飞机或敌机的自毁动画 # 显示飞机自毁动画的Mixin, 可用于飞机和敌机的自毁动画显示 class DestroyAnimationMixin...# 飞机,继承DestroyAnimationMixin, 方便使用显示自毁动画的函数 class Plan(DestroyAnimationMixin): def __init__(self...# 敌机,继承DestroyAnimationMixin, 方便使用显示自毁动画的函数 class Enemy(DestroyAnimationMixin): def __init__(self...time_passed: 距离上次绘制图像到现在的时间 ''' # 如果子弹超出屏幕或者击中敌机,就设置self.position[1]为-100,在plan.draw的时候就移除

1.3K30

可读代码编写炸鸡八 - 变量兜兜转转像是一场梦

这里先剧透一下, 在一段时间后,多选参数会搞一个抽奖福利,其中是《可读代码编写的艺术》以及其他书籍(可能还有别的) 的福利。可以先关注「 多选参数 」,以方便第一时间参与抽奖。...中的变量 我们来特别提一下中的变量,对于整个来说,都是可见可使用的。 所以成员变量算做一个 小型全局变量。许多人包括我,往往会把一到两个函数都会用到的变量上升至成员变量。...(enemy); if (gloden_skyline && enemy.hp damageValue()) { enemy.hp...我们可以看到,其实只有程序前部分使用到了 gloden_skyline 这个变量,但是在函数前部 定义了这个变量,会让阅读者认为后头可能使用到,就需要记住这个变量,其实,后头根本没有用到。...变量在越少 不同 的地方被使用、赋值,定位的变化就越容易。 所以常量的好处便体现出来了。

52810

500行代码,教你用python写个飞机大战

帮助蹲厕族、YP族、饭圈女孩在无聊之余可以一样东西让他们振作起来!让他们的左手 / 右手节奏韵律的朝着同一个方向来回移动起来!...实现DestroyAnimationMixin,这个主要是用来显示飞机或敌机的自毁动画 # 显示飞机自毁动画的Mixin, 可用于飞机和敌机的自毁动画显示 class DestroyAnimationMixin...# 飞机,继承DestroyAnimationMixin, 方便使用显示自毁动画的函数 class Plan(DestroyAnimationMixin): def __init__(self...# 敌机,继承DestroyAnimationMixin, 方便使用显示自毁动画的函数 class Enemy(DestroyAnimationMixin): def __init__(self...time_passed: 距离上次绘制图像到现在的时间 ''' # 如果子弹超出屏幕或者击中敌机,就设置self.position[1]为-100,在plan.draw的时候就移除

1K20

如何在Python 游戏中模拟引力

在真实世界中的引力是质量的物体来相互吸引的倾向性。物体(质量)越大,施加越大的引力作用。...添加一个引力函数 记住你的玩家已经了一个决定动作的属性。使用这个属性来将玩家精灵拉向屏幕底部。 在 Pygame 中,较高的数字更接近屏幕的底部边缘。 在真实的世界中,引力影响一切。...首先,在你的 Player 中添加一个 gravity 函数: def gravity(self): self.movey += 3.2 # 玩家掉落的多快 这是一个简单的函数。...你的精灵仍然下落,但是停在屏幕的底部。不过,你也许不能看到你在地面层之上的精灵。...引力问题是,你不能反抗,除非你一些东西来推开引力作用。因此,在接下来的文章中,你将添加地面和平台碰撞以及跳跃能力。在这期间,尝试应用引力到敌人精灵。 到目前为止,这里是全部的代码: #!

1.1K10

在王者荣耀角度下分析面向对象程序设计B中23种设计模式之适配器模式

适配器模式的优缺点: 优点: ①目标和被适配者是完全解耦关系; ②满足“开—闭原则”; 缺点: 其使用一定的局限性,不能将一个适配者和它的子类同时适配到目标接口 适配器模式的适用情景:...一个程序想使用已经存在的该类所实现的接口和当前程序所使用的接口不一致。...主函数【应用(Application)】 Application.java package angle_adapter; /* 测试Application : main函数...; //目标接口(敌方被模仿英雄) Enemy makeboluo=new Enemy(); //被模仿英雄:马可波罗...主函数【应用(Application)】 Application.java package angle_adapterPattern; import angle_adapterPattern.IOS

43120

在王者荣耀角度下分析面向对象程序设计B中23种设计模式之适配器模式

; ②满足“开—闭原则”; 缺点: 其使用一定的局限性,不能将一个适配者和它的子类同时适配到目标接口 适配器模式的适用情景: 一个程序想使用已经存在的该类所实现的接口和当前程序所使用的接口不一致...三、王者荣耀角度下实现适配器模式结构图及代码 应用一: 实现此适配器模式的UML图 eclipse结构图 主函数【应用(Application)】 Application.java package...angle_adapter; /* 测试Application : main函数 */ import angle_adapter.Enemy; import angle_adapter.HeroYuange...; //目标接口(敌方被模仿英雄) Enemy makeboluo=new Enemy(); //被模仿英雄:马可波罗...eclipse结构图 主函数【应用(Application)】 Application.java package angle_adapterPattern; import angle_adapterPattern.IOS

31700

.NET 状态机Automatonymous快速入门

提供了一种流畅的语法来声明状态机,包括状态,事件(支持触发器和数据事件)以及状态/事件活动。...快速入门 跟随官网提供的快速入门demo,定义了一个关系状态机,关系状态两种:Friend(朋友-友好)、Enemy(敌人-敌意),三个可以引发的事件:Hello(打招呼)、PissOff(走开)、Introduce...创建一个控制台应用程序,然后安装Automatonymous 我们创建两个,一个表示状态(Relationship),另一个定义状态的行为(RelationshipStateMachine),代码如下...状态机行为定义需要继承行为需要继续AutomatonymousStateMachine,它是泛型,需指定与行为关联的状态类型如AutomatonymousStateMachine<Relationship...默认情况下,事件或状态的所有公共属性都将在基的构造函数中自动定义和初始化。在构造函数中使用lambda方法Event和state方法明确地定义事件和状态。

87900
领券