三行代码  ›  专栏  ›  技术社区  ›  TakNof

Visual Studio代码不显示python数组中对象的方法

  •  0
  • TakNof  · 技术社区  · 2 月前

    在用Java学习了oop之后,我正在用python学习它。碰巧我正试图从我的类Person创建一个数组,其中包含Person对象。 创建单个对象时,Intellisense会显示可用的方法:

    class Person:
      name: str
      
      def set_name(self, name: str):
          self.name = name
          
      
      person1 = Person()
      person1.set_name("John") #<--- Here it shows the custom method i made.
    

    但是当我创建一个包含Person对象的数组,并尝试使用从数组中调用对象的方法时,这些方法就不会出现。

    class Person:
      name: str
      
      def set_name(self, name: str):
          self.name = name
          
      people = []
    
      for i in range (5):
          people.append(Person())
    
      people[0].set_name("John") #<---- After writting the dot the methods are empty,
      #and when written it doesn't have the "color code" it should have.
    

    有人知道为什么会这样吗C

    1 回复  |  直到 2 月前
        1
  •  0
  •   YYLIZH    2 月前

    你可以为人们添加类型提示。

    class Person:
      name: str
      
      def set_name(self, name: str):
          self.name = name
          
    people = []
    
    for i in range (5):
        people.append(Person())
    
    people:list[Person] # add type hint here
    people[0].set_name("John")