我试着写一个程序,从一个构造函数中得到一个变量到一个方法,但我不知道怎么做:(我在方法sprawdz
中得到一个p.liczba
错误。我想这里有一个用户的号码。同样的情况也发生在p.wielokrotnosc
。我知道我可以写这个程序更容易,但我真的很想学习像这样的简单例子面向对象编程
class Przyklad:
def __init__(self, liczba):
self.liczba = liczba
def podajSzukana(self):
self.wielokrotnosc = 3
class Dane:
def wczytaj(self):
a = int(input('Podaj mi liczbę '))
p = Przyklad(a)
def sprawdz(self):
if (p.liczba % p.wielokrotnosc == 0):
return true
print ('Witaj w programie szukającym wielokrotność liczby 3 \n')
d = Dane()
d.wczytaj()
d.sprawdz()
这是因为变量
liczba
包含在类Przyklad
中,所以当您尝试在Dane
中访问它时,是不可能的。你知道吗你应该尝试让
liczba
成为一个全局变量(这很危险),或者让Dane
成为Przyklad
的后代(尽管这些名称……)。你知道吗问题是无法从
Przyklad
的构造函数中获取变量。问题是将其保存在Dane
。常见的过程是将其附加到Dane
的实例:然后,您将在
Dane
中获得self.p
a
和p
是局部变量,不是Dane
的成员。必须使用self.
(正如jornsharpe所指出的那样)才能从类上下文访问此变量:另一个问题是
self.wielokrotnosc
在调用podajSzukana(self)
方法之前不存在。解决此问题的一种方法是在构造函数中调用该函数:相关问题 更多 >
编程相关推荐