Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/335.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
Can';t在python类中调用函数_Python_Python 3.x_Function_Class_Call - Fatal编程技术网

Can';t在python类中调用函数

Can';t在python类中调用函数,python,python-3.x,function,class,call,Python,Python 3.x,Function,Class,Call,正如标题所说,我不能在我的类中调用函数。代码如下: def __init__(self, minimum, maximum, dobra_liczba): self.minimum = minimum self.maximum = maximum self.dobra_liczba = dobra_liczba def sprawdz_liczbe_int(self, liczba): print("s

正如标题所说,我不能在我的类中调用函数。代码如下:


    def __init__(self, minimum, maximum, dobra_liczba):
        self.minimum = minimum
        self.maximum = maximum
        self.dobra_liczba = dobra_liczba

    def sprawdz_liczbe_int(self, liczba):
        print("sprawdzam liczbe")
        if isinstance(liczba, int) and self.minimum <= liczba <= self.maximum:

            return True
        else:
            return False

    def czy_liczba_trafiona(self, liczba):
        if liczba == self.dobra_liczba:
            print("trafiłeś!")
        else:
            print("pudło!")

    def graj(self):
        x = int(input("wpisz liczbe od "+str(self.minimum)+" do "+str(self.maximum)+": "))
        print(x)
        if self.sprawdz_liczbe_int(x) == True:
            self.czy_liczba_trafiona(x)

a1 = Gra(0, 100, 50)
a1.graj()

定义初始值(自身、最小值、最大值、多布拉·利茨巴):
self.minimum=最小值
self.max=最大值
self.dobra_liczba=dobra_liczba
def sprawdz_liczbe_int(自我,liczba):
印刷品(“sprawdzam-liczbe”)

在类中调用函数时,如果isinstance(liczba,int)和self.minimum,则不要将
self
添加为参数。 这条线就是你出错的地方

sprawdz_liczbe_int(self,input("wpisz liczbe od "+str(self.minimum)+" do "+str(self.maximum)+": ")
试试这个

class Gra:

    def __init__(self, minimum, maximum, liczba):
        self.minimum = minimum
        self.maximum = maximum
        self.liczba = liczba

    def sprawdz_liczbe_int(self, liczba):
        print("sprawdzam liczbe")
        if liczba == isinstance(liczba, int) and self.minimum <= liczba >= self.maximum:
            return True
        else:
            return False

    def graj(self):
        if self.sprawdz_liczbe_int(input("wpisz liczbe od "+str(self.minimum)+" do "+str(self.maximum)+": ")) == True:
            print("dobra liczba")
a1 = Gra(0, 100, 50) 
a1.graj()
Gra类:
定义初始值(自身、最小值、最大值、liczba):
self.minimum=最小值
self.max=最大值
self.liczba=liczba
def sprawdz_liczbe_int(自我,liczba):
印刷品(“sprawdzam-liczbe”)
如果liczba==isinstance(liczba,int)且self.minimum=self.maximum:
返回真值
其他:
返回错误
def graj(自我):
如果self.sprawdz_liczbe_int(输入(“wpisz liczbe od”+str(self.minimum)+“do”+str(self.minimum)+“:”)==真:
印刷品(“dobra liczba”)
a1=Gra(0,100,50)
a1.graj()

您的条件的问题是您永远不会得到
True
,因为
如果liczba==isinstance(liczba,int)
总是返回
False

input()
中的值是一个
字符串
,或者您可以测试
liczba
是否是
int
,但情况并非如此,因此它总是
False


如果省略它,只测试值是否在所需的范围内,可能会更好。

调用函数时,错误地将“self”作为参数传递

错:

sprawdz_liczbe_int(self.input("wpisz liczbe od"+str(self.minimum)+" do "+str(self.maximum)+”:")
更正:

sprawdz_liczbe_int(input("wpisz liczbe od"+str(self.minimum)+" do "str(self.maximum)+":") 
“self”关键字的主要工作是在python中访问类的属性和方法


更清楚地说,“self”总是指向您当前所在的对象。

调用成员函数时,不要将
self
作为第一个参数传递。例如:
如果self.sprawdz_liczbe_int(输入(…))==True:
你知道你在
self.sprawdz_liczbe_int(self…)
中传递了两次
self
吗?我删除了self参数,但它仍然不起作用。
self.minimum=self.maximum
你的意思是
self.minimum吗,有点小错误,但我的代码仍然不起作用:(我删除了self参数,但它仍然不起作用。你有错误吗?没有,它只是在输出“wpisz liczbe od 0 do 100:@kiciarozek”后停止并没有输出任何内容:“@kiciarozek应该是这样的,因为
input()
您在代码中使用了,现在您应该键入一些值并用返回键盘验证它。在sprawdz_liczbe_int()的第一行有print(“sprawdzam liczbe”),但它没有打印。我在代码中做了一些更改,如:
def graj(self):x=input(“wpisz liczbe od”+str(self.minimum)+“do”+str(self.max)+“:”)如果self.sprawdz_liczbe_int(x)=True:self.czy_liczba_traviona(x)
我添加了print(x)来检查它在从用户获得输入后是否会打印x,但它不打印,程序结束