君无泪 发表于 2021-9-22 12:28:15

求解input

本帖最后由 君无泪 于 2021-9-22 22:02 编辑

from xpinyin import Pinyin


class A:
       
        def __init__(self):
                self.p = Pinyin()
               
        def pinyin(self, chinese=input('请输入: ')):
                p_y = self.p.get_pinyin(a)
                print(p_y)

        def pinyins(self, chinese=input('请输入汉字: ')):
                p_y = self.p.get_pinyins(chinese, tone_marks='marks')
                print(p_y)


if __name__ == '__main__':
        a = A()
        a.pinyins()

求解:我没有调用pinyin()这个方法,为什么会提示:请输入:。

suchocolate 发表于 2021-9-22 13:24:31

本帖最后由 suchocolate 于 2021-9-22 15:44 编辑

你的pinyins函数的形参调用了input。当python读到这个函数的时候就会运行input。

Twilight6 发表于 2021-9-22 19:48:26

from xpinyin import Pinyin


class A:
      
      def __init__(self):
                self.p = Pinyin()
               
      def pinyin(self, chinese=input('请输入: ')):
                p_y = self.p.get_pinyin(a)
                print(p_y)

      def pinyins(self, chinese=input('请输入汉字: ')):
                p_y = self.p.get_pinyins(chinese, tone_marks='marks')
                print(p_y)


if __name__ == '__main__':
      a = A()
      a.pinyins()

看看这俩地方,你定义方法参数时候 input 带上括号了,那么调用这个方法时候自然也就调用了 input

君无泪 发表于 2021-9-22 21:29:29

Twilight6 发表于 2021-9-22 19:48
看看这俩地方,你定义方法参数时候 input 带上括号了,那么调用这个方法时候自然也就调用了 input

我没有调用第一个方法,我只是调用了第二个方法,不知道为什么会自动调用第一个方法的input函数?

白two 发表于 2021-9-22 21:50:34

君无泪 发表于 2021-9-22 21:29
我没有调用第一个方法,我只是调用了第二个方法,不知道为什么会自动调用第一个方法的input函数?

但是你定义第一个方法得时候,调用了 input 函数
python 执行的时候是从上到下的,虽然你没调用 方法1,但是当程序执行到这一步的时候,它会执行 input 函数

君无泪 发表于 2021-9-22 22:00:28

白two 发表于 2021-9-22 21:50
但是你定义第一个方法得时候,调用了 input 函数
python 执行的时候是从上到下的,虽然你没调用 方法1, ...

这样啊,谢谢啦!有点奇怪,把input函数放在方法里面就没事。放在方法参数里面就会自动调用。
页: [1]
查看完整版本: 求解input