我的代码
class MyClass:
i =123
def f2(a):
global b
print (a)
print (b)
b = 9
x = MyClass()
x.f2(1)
它无法正常工作
TypeError: f2() takes 1 positional argument but 2 were given
为什么?如何检查函数和位置参数? 如果我改变
x.f2()
<__main__.MyClass object at 0x7fb3f028fbe0>
9
在这种情况下,我无法通过。
答案 0 :(得分:2)
class MyClass:
i =123
def f2(self,a):
print (a)
x = MyClass()
x.f2(1)
输出
1
答案 1 :(得分:2)
class MyClass:
i =123
def f2(self,a):
global b
print (a)
print (b)
b = 9
这样写,就可以了
答案 2 :(得分:2)
在类内部创建函数的'OOP'原因之一是继承构造函数。
您已经创建了类'MyClass',函数f2()是其中的函数之一。
要传达该函数属于/属于类的一部分,您必须在函数中传递默认参数“ self”,否则解释器无法识别该参数。
出现错误: 您将1传递给该函数,但是默认情况下,所有类函数都会传递一个“ self”。可能有两种解决方案,
要么通过装饰器将函数设为静态
UPDATE d_mat.mat_data SET dloc='Australia' where d_id=1;
*这表示该函数仅在类内部,但 不属于它。就在那里。
在函数中传递一个“自我”。
@static
def f2(a):
pass
希望有帮助。