python基础语法难点突破
1.面向对象类的基本使用
知识点:
- 属性:类属性、实例对象属性
- 方法:实例方法、类方法、静态方法
- 类可以调用哪些内容:类属性、类方法、静态方法
代码示例:
class A(object):
# 类属性
class_a = 20
def __init__(self):
# 实例对象属性
self.a = 10
# 实例方法
def a_print(self):
print("a_print")
# 类方法
@classmethod
def class_print(cls):
print('class_print')
# 静态方法
@staticmethod
def static_print():
print("static_print")
# 类调用类属性,不能调用实例对象属性
print(A.class_a)
# 使用实例化对象调用实例对象属性
print(A().a)
# 使用类调用类方法
A.class_print()
# 使用类调用静态方法
A.static_print()
# 调用实例方法的两种方式
A.a_print(A())
A().a_print()
2.面向对象类的调用和属性
知识点:
- 在一个类中想要调用另一个类的方法和属性的方法:继承、属性赋值的形式
代码示例:
class A(object):
class_a = 20
def __init__(self):
self.a = 10
def a_print(self):
print("a_print")
@classmethod
def class_print(cls):
print('class_print')
@staticmethod
def static_print():
print("static_print")
# 继承
class B(A):
def b_print(self):
print("b_print")
B().b_print()
B().a_print()
# 属性赋值的形式
class C(object):
obj_a = A()
def c_print(self):
print('c_print')
# 调用A中的方法
C.obj_a.a_print()
3.面向对象super和@property的使用
知识点:
- super作用:super() 函数是用于调用父类(超类)的一个方法。
- super使用场景:重写父类方法,在父类方法的基础上,新增一些业务逻辑
- 使用@property装饰器可以直接通过方法名来访问方法,不需要再在后面使用"()"
代码示例:
class A(object):
def a_print(self):
print("a_print")
class B(A):
def a_print(self):
# 调用父类方法
super().a_print()
print("add_data")
@property
def data(self):
print("data")
B().a_print()
# 直接以调用属性的形式调用方法
B().data