Trong python, tôi biết rằng tìm kiếm một biến phạm vi tại địa phương là nhanh hơn đáng kể so với tìm kiếm một biến phạm vi toàn cầu. Vì vậy:Python: Các thuộc tính lớp có tương đương với các biến cục bộ khi bên trong một phương thức không?
a = 4
def function()
for x in range(10000):
<do something with 'a'>
là chậm hơn so với
def function()
a = 4
for x in range(10000):
<do something with 'a'>
Vì vậy, khi tôi nhìn vào một định nghĩa lớp, với một thuộc tính và phương pháp:
class Classy(object):
def __init__(self, attribute1):
self.attribute1 = attribute1
self.attribute2 = 4
def method(self):
for x in range(10000):
<do something with self.attribute1 and self.attribute2>
là sử dụng của tôi self.attribute giống như chức năng đầu tiên hoặc thứ hai của tôi? Điều gì về nếu tôi lớp con cấp Classy, và cố gắng truy cập attribute2 từ một phương thức trong lớp con của tôi?
Trong khi tôi tò mò về câu trả lời cho câu hỏi này, lý do thực sự là vì tôi có một số hằng số hầu như chắc chắn sẽ chỉ được sử dụng bởi một phương pháp, và tôi không chắc mình có nên xác định chúng trong phương thức đó, hoặc trong init (trong trường hợp sau này tôi nhận ra chúng cần được truy cập ở nơi khác). Vì khả năng đó là từ xa, tôi nghĩ tôi sẽ định nghĩa chúng trong phương thức. Cảm ơn. – Wilduck