【发布时间】:2018-06-20 14:26:00
【问题描述】:
在这个例子中,它正在工作 酒店作为类变量没有 NameError
class Hotel():
"""""""""
this is hotel class file
"""
hotels = []
def __init__(self,number,hotel_name,city,total_number,empty_rooms):
self.number = number
self.hotel_name = hotel_name
self.city = city
self.total_number = total_number
self.empty_rooms = empty_rooms
Hotel.hotels.append([number,hotel_name,city,total_number,empty_rooms])
def list_hotels_in_city(self,city):
for i in hotels:
if city in i:
print "In ",city,": ",i[1],"hotel, available rooms :",i[4]
在下面的例子中它不起作用
from twilio.rest import Client
class Notifications():
customers = []
def __init__(self,customer_name,number,message):
self.customer_name = customer_name
self.number = number
self.message = message
Notifications.customers.append([customer_name,number,message])
def send_text_message(self,customer_name):
for i in customers:
print "triggeredb"
inst = Notifications("ahmed","+00000000000","messagesample")
print "instance : ",inst.customers
inst.send_text_message("ahmed")
NameError:未定义全局名称“客户”
更新
对于第一个示例,没有调用显示错误 但是第二个例子的问题解决了感谢 Tom Dalton、scharette 和 James
【问题讨论】:
-
当您调用
for i in customers:customers不在该功能范围内。 -
试试
for i in self.customers: -
@TomDalton 谢谢它现在可以工作了,但是为什么在第一个例子中我没有使用 self.hotels 和它的工作原理?
-
我不知道——你有没有在模块级别定义变量
hotels? -
它没有在其他任何地方定义,就像两个例子一样,它们是不同的文件。