Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python “的含义';布尔';对象不可调用";?_Python_Class_Object_Syntax Error_Object Oriented Analysis - Fatal编程技术网

Python “的含义';布尔';对象不可调用";?

Python “的含义';布尔';对象不可调用";?,python,class,object,syntax-error,object-oriented-analysis,Python,Class,Object,Syntax Error,Object Oriented Analysis,当我尝试运行函数'iswalking()'时,出现此错误 我正在努力学习OOPs的概念,到目前为止,这就是我所创造的 class Human: def __init__(self,name,age,gender): self.name = name self.age=age self.gender= gender def iswalking(self,TOF): self.TOF = TOF if

当我尝试运行函数'iswalking()'时,出现此错误

我正在努力学习OOPs的概念,到目前为止,这就是我所创造的

class Human:
    def __init__(self,name,age,gender):
        self.name = name 
        self.age=age
        self.gender= gender
    def iswalking(self,TOF):
        self.TOF = TOF
        if TOF:
            print("walking")
        else:
            print("sitting")
    def introduce_self(self):
        print("my name is ",self.name)
        print("my age is ",self.age)
        print("my gender is ",self.gender)

h1=Human("Armaan",16,"male")
h1.iswalking=False
h1.introduce_self()
h1.iswalking()
我预计产出:

my name is  Armaan                                                                                                                     
my age is  16                                                                                                                          
my gender is  male 

sitting
我得到的是:

my name is  Armaan                                                                                                                     
my age is  16                                                                                                                          
my gender is  male                                                                                                                     
Traceback (most recent call last):                                                                                                     
  File "main.py", line 19, in <module>                                                                                                 
    h1.iswalking()                                                                                                                     
TypeError: 'bool' object is not callable                                                                                               


...Program finished with exit code 1                                                                                                   
Press ENTER to exit console.
我叫阿曼
我的年龄是16岁
我的性别是男性
回溯(最近一次呼叫最后一次):
文件“main.py”,第19行,在
h1.iswalking()
TypeError:“bool”对象不可调用
…程序已完成,退出代码为1
按ENTER键退出控制台。

您将一个函数重新分配给布尔值,然后尝试调用该布尔值,认为它仍然是一个函数

相反,您希望:

class Human:
    def __init__(self,name,age,gender):
        self.name = name 
        self.age=age
        self.gender= gender
    def is_walking(self):
        if self.iswalking:
            print("walking")
        else:
            print("sitting")
    def introduce_self(self):
        print("my name is ",self.name)
        print("my age is ",self.age)
        print("my gender is ",self.gender)

h1=Human("Armaan",16,"male")
h1.iswalking=False
h1.introduce_self()
h1.iswalking()
这样可以避免重新分配功能

h1=Human("Armaan",16,"male")
h1.iswalking=False # first 
h1.introduce_self()
h1.iswalking()     # second
在第一行中,您将属性
iswalking
更改为
False
——这是一个布尔值

在第二行中,您尝试调用
iswalking
——您已将其设置为
False
=因此您尝试调用
False
,即
False()
——这将引发您看到的错误

我相信你想这样做:

h1.iswalking(False)
其中应打印:

sitting

h1.iswalking=False
这里您正在用一个布尔值(False)覆盖函数
iswalking
,因此当您稍后尝试调用该函数时,会出现错误,因为布尔值是不可调用的。你想用那条线干什么?