python面向对象初识

一、类
class Person:
# init用来初始化类的属性,每次创建对象的时候就会执行,相当于Java的构造方法
def __init__(self, name, age, hobby):
self.name = name
self.age = age
self.hobby = hobby
print(666)


ret = Person("xiqian", 18, "basketball")
print(ret.__dict__)

1、类名+()产生一个实例,也叫对象或对象空间
2、自动执行类中的__init__方法,将对象空间传给__init__的self参数
3、给对象封装相应的属性

# 增
ret.high = 175
# 删
del ret.high
# 改
ret.high = 170
# 查
print(ret.name)

二、闭包
闭包可以让一个局部变量常驻内存
def func():
name = "alex"
def inner():
print(name)
return inner

func()()

三、迭代器
包含__iter__()方法
# 可迭代对象:字符串,列表,字典,元组

lst = ["皇阿玛", "皇额娘", "容嬷嬷", "紫薇"]
iter = lst.__iter__()
while True:
try:
name = iter.__next__()
print(name)
except StopIteration:
break

四、生成器
与return的区别:return直接返回,不执行后面的代码,yield可以控制代码块的执行,本质是一个迭代器
def func():
print("周杰伦")
yield "昆凌"
print("王力宏")
yield "李云迪"

g = func()
print(g.__next__())
print(g.__next__())

五、继承
class Animal:
def __init__(self, name, sex, age):
self.name = name
self.sex = sex
self.age = age

def eat(self):
print("%s吃东西" % self.name)

def drink(self):
print("%s喝东西" % self.name)


class Bird(Animal):
def __init__(self, name, sex, age, wing):
self.wing = wing
super().__init__(name, sex, age) # 继承父类的属性

b1 = Bird("鹦鹉", "公", 20, "绿翅膀")
print(b1.__dict__)
posted @ 2019-11-25 15:26  宏宏宏少  阅读(120)  评论(0)    收藏  举报