关于 Python 中的类想请教一下大佬

2019-06-28 12:31:47 +08:00
 18870715400
class A():
    def __init__(self):
        self.a = np.random.rand(len(self.input_num[0]))

    def fun(self, input_num):
        pass

如上代码所示,init 中如何能够拿到 fun 方法中的 input_num 输入呢,上面代码显示是错误的,假设 input_num 只在 fun 函数中输入,

1574 次点击
所在节点    Python
8 条回复
Sylv
2019-06-28 12:36:42 +08:00
__init__ 是类的初始化方法,fun 只能在类初始化后才能运行。简而言之,请重看 Python 基础教程。
xiri
2019-06-28 12:37:45 +08:00
拿不到吧,这里的 init 相当于 C++中的构造函数,在对象声明的时候就调用结束了,而这时候 input_num 还没有输入
18870715400
2019-06-28 12:43:12 +08:00
谢谢,刚刚试了直接在 fun 中初始化 a 属性
leishi1313
2019-06-28 12:45:33 +08:00
你好,你这种情况我们一般不建议用类的呢,用函数就可以了亲
18870715400
2019-06-28 12:51:51 +08:00
class A():
a = None
def __init__(self):
pass

def fun(self, input_num):
self.a = np.random.rand(len(input_num[0]))


已解决,谢谢各位
shyrock
2019-06-28 13:13:59 +08:00
class A():
a = None
def __init__(self,input_num):
fun(input_num)

def fun(self, input_num):
self.a = np.random.rand(len(input_num[0]))

行吗?
lowman
2019-06-29 17:56:47 +08:00
class A(object):
def __init__(self):
print("--------------")
self.a = self.func()
print(self.a)



def func(self):
a = input("======================:")
return a

A()
lowman
2019-06-29 17:58:14 +08:00
感觉很奇妙, init 是初始化实例对象, 可居然能在 init 方法里调用 实例对象的方法. 龟叔果然厉害.

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/578263

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX