Python 在接受伪参数的类中创建方法
我对面向对象编程有点陌生,希望对它进行更多的探索。我这里有一个字典“a”,它有一些键值对。所以我想做的是构建一个方法,它遍历这个字典,只取那些有值的值为真 我试着创建一个接受值的类,我有逻辑检查dict中的值,但不知道如何从中创建方法 a={a:真,B:假,C:真} 我得到了结果,但却无法表达我真正想要的。我想让它运行如下内容:Python 在接受伪参数的类中创建方法,python,python-3.x,class,methods,Python,Python 3.x,Class,Methods,我对面向对象编程有点陌生,希望对它进行更多的探索。我这里有一个字典“a”,它有一些键值对。所以我想做的是构建一个方法,它遍历这个字典,只取那些有值的值为真 我试着创建一个接受值的类,我有逻辑检查dict中的值,但不知道如何从中创建方法 a={a:真,B:假,C:真} 我得到了结果,但却无法表达我真正想要的。我想让它运行如下内容: trial = Check(a, b, c) 所以运行这个应该给我一个dict={“a”:True,“C”:True}。 a是我从dict中检查国家值的地方,我还希望
trial = Check(a, b, c)
所以运行这个应该给我一个dict={“a”:True,“C”:True}。
a是我从dict中检查国家值的地方,我还希望b和c参数在那里。我尝试使用它们,但它给了我一个错误——“b未定义”函数init(),总是在初始化类时执行 使用init()函数为对象属性指定值,或为创建对象时需要执行的其他操作指定值。在您的案例中,
def\uuu init\uuuu(self,country,A,B):
没有意义
注意:self参数是对类的当前实例的引用,用于访问属于该类的变量
对象方法:
对象还可以包含方法。对象中的方法是属于对象的函数
如果要在某个类的定义之外使用该类的方法(或属性),请执行以下操作:
trial = Check(a)
trial.countrycheck()
例如:
class A(object):
def foo(self):
print ('Foo')
def bar(self, argument):
print ('Bar ', argument)
a = A()
a.foo() #prints 'Foo'
a.bar('Arg!') #prints 'Bar Arg!'
您的代码应该如下所示:
class Check:
def __init__(self, country):
self.country = country
def countrycheck(self):
Result = {}
for i in self.country:
if self.country[i] == True:
Result.update({i: True})
return Result
a = {"A": True, "B": False, "C": True}
trial = Check(a)
print (trial.countrycheck())
输出:
{'A': True, 'C': True}
这看起来甚至不像是一门课。如果你把它变成一个函数,它会更有意义。你打算把
b
变成“b”吗?它在哪里定义?trial=Check(a,b,c)
只提供类Check
的实例。要获得结果,您应该运行trial.countrycheck()
{'A': True, 'C': True}