listPersons()コマンドを実行しようとすると、すべてのPerson/InstanceはsayHello()メソッドを呼び出す必要があります。しかし、名前がstrなので、AttributeErrorが発生します(下記参照)。Pythonでメソッドに使用する文字列をフォーマットするにはどうすればよいですか?
私はそれらのメソッドを使用できるように名前をフォーマットしますか?
class person:
def __init__ (self, name):
self.name = name
def sayHello(self):
print("Hello World, I'm", self.name)
def listPersons():
print ("There are", len(names), "persons here, please everybody say hello to the world!")
for name in names:
print(name.sayHello())
names = ["Tobias", "Lukas", "Alex", "Hannah"]
for name in names:
globals()[name] = person(name)
はAttributeError:
Traceback (most recent call last):
File "<pyshell#97>", line 1, in <module>
listPersons()
File "/Users/user/Desktop/test.py", line 12, in listPersons
print(name.sayHello())
AttributeError: 'str' object has no attribute 'sayHello'
あなたの助けをありがとうございました! :-)
は、このコードを貼り付けるとPython 2と3 – idjaw