Python:OOP 教程 1:类 和实例:如何使用 self?
Python: OOP Tutorial 1: Classes and instances: How to use self?
我尝试在 Python 中了解 类。目前,我使用 Corey Schafer 的教程。
这是他写的:
class Employee:
def __init__(self, first, last, pay):
self.first = first
self.last = last
self.pay = pay
self.email = first + "." + last + '@company.com'
emp_1 = Employee('First1', 'Last1', 50000)
emp_2 = Employee('First2', 'Last2', 60000)
print(emp_1.email)
print(emp_2.email)
我的问题是:为什么他没有在这里使用self:self.email = self.first + "。 “ + self.last + '@company.com'
class Employee:
def __init__(self, first, last, pay):
self.first = first
self.last = last
self.pay = pay
self.email = self.first + "." + self.last + '@company.com'
emp_1 = Employee('First1', 'Last1', 50000)
emp_2 = Employee('First2', 'Last2', 60000)
print(emp_1.email)
print(emp_2.email)
两种方式的输出是相同的。
如果在 __init__
方法中使用 self.first
或 first
没有区别,因为 self.first
也指向相同的变量,即 first
.
使变量成为 self
的属性只会使其成为实例变量,并允许您在 class
中的任何位置访问它
我尝试在 Python 中了解 类。目前,我使用 Corey Schafer 的教程。
这是他写的:
class Employee:
def __init__(self, first, last, pay):
self.first = first
self.last = last
self.pay = pay
self.email = first + "." + last + '@company.com'
emp_1 = Employee('First1', 'Last1', 50000)
emp_2 = Employee('First2', 'Last2', 60000)
print(emp_1.email)
print(emp_2.email)
我的问题是:为什么他没有在这里使用self:self.email = self.first + "。 “ + self.last + '@company.com'
class Employee:
def __init__(self, first, last, pay):
self.first = first
self.last = last
self.pay = pay
self.email = self.first + "." + self.last + '@company.com'
emp_1 = Employee('First1', 'Last1', 50000)
emp_2 = Employee('First2', 'Last2', 60000)
print(emp_1.email)
print(emp_2.email)
两种方式的输出是相同的。
如果在 __init__
方法中使用 self.first
或 first
没有区别,因为 self.first
也指向相同的变量,即 first
.
使变量成为 self
的属性只会使其成为实例变量,并允许您在 class