类型错误 - Python 中的类

2024-04-18

我是 Python 的初学者,刚刚开始掌握课程。我确信这可能是非常基本的东西,但为什么这段代码是这样的:

class Television():
    def __init__(self):
        print('Welcome your TV.')
        self.volume = 10
        self.channel = 1
    def channel(self, channel):
        self.channel = input('Pick a channel: ')
        print('You are on channel ' + self.channel)
    def volume_up(self, amount):
        self.amount = ('Increase the volume by: ')
        self.volume += self.amount
        print('The volume is now ' + self.volume)
    def volume_down(self, amount):
        self.amount = ('Decrease the volume by: ')
        self.volume -= self.amount
        print('The volume is now ' + self.volume)
myTele = Television()
myTele.channel()
myTele.volume_up()
myTele.volume_down()

产生如下错误:

TypeError: 'int' object is not callable, Line 18

EDIT: 我把代码改成这样:

class Television():
    def __init__(self, volume = 10, channel = 1):
        print('Welcome your TV.')
        self.volume = volume
        self.channel = channel
    def change(self, channel):
        self.channel = input('Pick a channel: ')
        print('You are on channel ' + self.channel)
    def volume_up(self, amount):
        self.amount = int(input('Increase the volume by: '))
        self.volume += self.amount
        print('The volume is now ' + str(self.volume))
    def volume_down(self, amount):
        self.amount = int(input('Decrease the volume by: '))
        self.volume -= self.amount
        print('The volume is now ' + str(self.volume))
myTele = Television()
myTele.change()
myTele.volume_up()
myTele.volume_down()

但它返回:

TypeError: change() missing 1 required positional argument: 'channel'

再说一次,这是来自刚开始上课的人,所以如果我做了一些明显错误的事情,请不要太严厉。谢谢。


您指定一个channel属性在你的__init__:

self.channel = 1

这阴影了channel()类上的方法。重命名属性或方法。

实例上的属性胜过类上的属性(数据描述符除外;想想propertys)。来自类定义文档 http://docs.python.org/3/reference/compound_stmts.html#class-definitions:

类定义中定义的变量是类属性;它们由实例共享。实例属性可以在方法中设置self.name = value。类和实例属性都可以通过符号“self.name”,并且当以这种方式访问​​时,实例属性会隐藏同名的类属性。

您的方法还需要一个您在示例中未传递的参数,但我认为您接下来会自己解决这个问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类型错误 - Python 中的类 的相关文章

随机推荐

  • gdb nostop SIGSEGV 在特定线程上

    我有一个程序故意在一个线程上出现段错误 但我有一个问题 另一个线程出现段错误 我想用 GDB 捕获它 我看到我可以 handle SIGSEGV nostop noprint 但我只想在故意这样做的线程上这样做 有可能吗 我会解释一下 我有
  • extern auto 变量没有初始值设定项

    我需要在我的 C 程序中使用全局时间戳 std chrono high resolution clock now 我在头文件Header h中声明了它 include
  • Tomcat 10 上的 Spring Boot 2.x 问题

    我试图在 Tomcat Docker 容器中部署一个 war 文件 但总是得到404 Not Found页 我通过以下方式创建了 Spring Boot 项目Intellij 教程 https www jetbrains com help
  • javascript 在多个链式异步函数上等待

    假设我有以下内容 const a new A await a getB action A prototype getB is async也B prototype action 如果我尝试等待函数的链接 则会收到错误 TypeError a
  • SoapExtension 未加载

    我正在尝试写一个肥皂扩展 但框架没有加载它 我已经添加到 web config
  • 不同的Android SDK版本使用不同的图标

    我的 Android 菜单有图标 在 Android 3 上 我使用黑色 ActionBar 因此图标为白色 然而 在 Android 2 x 上 菜单本质上是白色的 这意味着图标几乎不可见 如何为不同版本使用不同的菜单图标 我假设我可以使
  • 我们如何重命名MySQL 5.0中的数据库名称[重复]

    这个问题在这里已经有答案了 我在用MySQL 5 0 我创建了一个名为accounts 但现在我想将数据库名称更改为FinanceAccounts 如何更改数据库名称MySQL 5 0 我认为只有一种方法 除了重命名 MySQL datad
  • 安全移动 Microsoft SDK 文件夹

    我的硬盘上有一个文件夹 C Program Files Microsoft SDKs 我想知道将其移动到外部驱动器是否安全 Visual Studio 或任何其他工具是否依赖于此特定文件夹 注册表中有相当多的条目 至少在我的注册表中 指向该
  • Cython指定固定长度字符串的numpy数组

    我有一个函数 我想使用 Cython 来处理大量固定长度的字符串 对于标准 cython 函数 我可以像这样声明数组的类型 cpdef double g double in arr cdef double out arr np zeros
  • 对话框的对象位置 Libgdx

    我有一个对话框 Dialog dialog new Dialog style dialog setSize 400 500 dialog setPosition Gdx graphics getWidth 2 200 Gdx graphic
  • 使用自动 bash 脚本检查 FTP 中是否存在文件

    我想自动化执行以下操作的批处理作业 检查我的file txt存在于FTP服务器中 我将其重命名为file trt 检查我的file txt and file trt存在 如果存在我发送电子邮件 我运行另一个脚本 最后我删除file trt
  • Ruby+Anemone Web Crawler:正则表达式匹配以一系列数字结尾的 URL

    假设我正在尝试抓取一个网站并跳过一个像这样结束的页面 我目前正在 Ruby 中使用 Anemone gem 来构建爬虫 我正在使用skip links like方法 但我的模式似乎永远不匹配 我试图使其尽可能通用 因此它不依赖于子页面 而只
  • 为什么这个 Sql 语句(有 2 个表连接)需要 5 分钟才能完成?

    更新 下面添加了 3 个更新 以下sql语句需要5分钟才能完成 我只是 不 得到 它 第一个表有 6861534 行 第二个表少了一点 第三个表 包含 4 个地理字段 与第一个表相同 Those GEOGRAPHY第三个表中的字段 它们不应
  • 错误域=FIRFirestoreErrorDomain 代码=7“权限缺失或不足。”

    所以我有以下代码从 firestore 检索文档 该函数在我的 viewDidLoad 中调用 func loadAnnotations db collection jumpSpotAnnotations getDocuments quer
  • 将静态库链接到共享库

    我正在尝试在 Ubuntu Linux 上使用 g 5 4 0 创建共享库 我已经构建了 Poco C 库的静态库 a 文件 我想将它们静态链接到我的共享库中 但它不起作用 我已将以下字符串添加到我的构建脚本中 Wl whole archi
  • 如何使用c#读取EPS的属性或颜色信息?

    我的要求是读取另外50个EPS文件并导出EPS的属性 颜色模式 这可能吗 颜色模式有灰度 RGB 和 CMYK 到目前为止 我尝试使用 BitmapImage 来读取 EPS 但我没有运气 BitmapImage 不读取 EPS 因为它是矢
  • ANDROID:如何将视频文件下载到 SD 卡?

    我在网站上有一个 MP4 格式的视频文件 我希望用户能够通过单击链接将该视频下载到他们的 SD 卡上 是否有捷径可寻 我目前有这段代码 但它不起作用 不知道我做错了什么 谢谢你的帮助 import java io BufferedInput
  • Titan 加载弹性搜索问题

    我使用以下代码来加载泰坦 TitanFactory Builder config TitanFactory build config set storage backend berkeleyje config set storage dir
  • 指针的大小以及该大小是否取决于体系结构

    好吧 抱歉这个问题 更像是一个一般文化问题 尚未找到准确的答案 如果我有类似的东西 char Field or void Field or double pointers 指针的大小是一样的吗 据我记得大学时它是 4 个字节 但是 根据CP
  • 类型错误 - Python 中的类

    我是 Python 的初学者 刚刚开始掌握课程 我确信这可能是非常基本的东西 但为什么这段代码是这样的 class Television def init self print Welcome your TV self volume 10