Python 面向对象编程入门
George Boorman
Curriculum Manager, DataCamp
selfself.___ 引用属性class MyClass: # 类中的函数定义 # 第一个参数是 self def my_method1(self, other_args...): # 在此编写逻辑def my_method2(self, my_attr): # 通过赋值创建属性 self.my_attr = my_attr ...
__init__()__methodname__ 语法而自动调用class Customer:
def __init__(self, name):
# 创建 .name 属性并设为 name 参数
self.name = name
print("The __init__ method was called")
# __init__ 被隐式调用
cust = Customer("Lara de Silva")
print(cust.name)
The __init__ method was called
Lara de Silva
class MyClass: def my_method1(self, attr1): self.attr1 = attr1 ... def my_method2(self, attr2): self.attr2 = attr2 ...obj = MyClass() # 创建 attr1 obj.my_method1(val1) # 创建 attr2 obj.my_method2(val2)
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# 一次性创建所有属性 obj = MyClass(val1, val2)
class Customer: # 添加 balance 参数 def __init__(self, name, balance):self.name = name # 添加 balance 属性 self.balance = balance print("The __init__ method was called")
# 调用了 __init__
cust = Customer("Lara de Silva", 1000)
print(cust.name)
print(cust.balance)
The __init__ method was called
Lara de Silva
1000
class Customer:
# 为 balance 设定默认值
def __init__(self, name, balance=0):
self.name = name
# 赋值新属性
self.balance = balance
print("The __init__ method was called")
# 不显式指定 balance cust = Customer("Lara de Silva")print(cust.name) # 仍会创建 balance 属性 print(cust.balance)
The __init__ method was called
Lara de Silva
0
__init__() 中初始化属性__init__() 中初始化属性类用 CamelCase,函数与属性用 lower_snake_case
__init__() 中初始化属性类用 CamelCase,函数与属性用 lower_snake_case
self 为 selfclass MyClass:
# 可行但不推荐
def my_method(george, attr):
george.attr = attr
__init__() 中初始化属性类用 CamelCase,函数与属性用 lower_snake_case
self 就是 selfclass MyClass:
"""此类不执行任何操作"""
pass
Python 面向对象编程入门