python之路——22

学习内容

1.初识面向对象
类:抽象的,模子
对象:具体的,根据类规范
代码精简,修改方便,属性规范
2.对象
查看属性
调用方法
__dict__,增删改查,通过字典语法进行
3.类名
1.实例化
2.调用方法
3.调用静态属性
__dict__,类中的名字,只能看
4.面向对象情况
1.一类事物,有相似的属性和功能
2.当有几函数,需要反复传入相同的参数,可以考虑面向对象

代码区

1.人狗大战,闭包

def Dog(name, blood, aggr, kind):
    dog = {
        'name': name,
        'blood': blood,
        'aggr': aggr,
        'kind': kind,
    }
    def bite(human):
        human['blood'] -= dog['aggr']
        print('%s被咬了,掉了%s的血' % (human['name'], dog['aggr']))
    dog['bite'] = bite
    return dog

def Human(name, blood, aggr, gender):
    human = {
        'name': name,
        'blood': blood,
        'aggr': aggr,
        'gender': gender,
    }
    def attack(dog):
        dog['blood'] -= human['aggr']
        print('%s被打了,掉了%s的血' % (dog['name'], human['aggr']))
    human['attack'] = attack
    return human

dog1 = Dog('泰迪', 536, 120, 'teddy')
human1 = Human('小明', 835, 235, 'None')
print(human1)
human1['attack'](dog1)

2.面向对象,操作

class Person:
    country = 'China'
    def __init__(self,*args):
        self.name = args[0]
        self.hp = args[1]
        self.aggr = args[2]
        self.sex = args[3]
    def walk(s):
        print('%s走走'%s.name)

alex = Person('A',12,1,'B')
print(alex.country)
Person.walk(alex)

3.面向对象,人狗大战

class Dog:
    def __init__(self,name,blood,aggr,kind):
        self.name = name
        self.blood = blood
        self.aggr = aggr
        self.kind = kind
    def bite(self,person):
        person.blood -= self.aggr

class Person:
    def __init__(self,name,blood,aggr,gender):
        self.name = name
        self.blood = blood
        self.aggr = aggr
        self.gender = gender
    def attack(self,dog):
        dog.blood -= self.aggr
J = Dog('Boss Kim',100,20,'teddy')
alex = Person('Alex',999,998,'None')
alex.attack(J)
print(J.blood)

4.面向对象——打印

class Person:
    def __init__(self,name,age,gender):
        self.name = name
        self.age = age
        self.gender = gender
    def affair(self):
        print("%s,%s岁,%s,上山去砍柴"%(self.name, self.age,self.gender))
        print("%s,%s岁,%s,开车去东北" % (self.name, self.age, self.gender))
        print("%s,%s岁,%s,最爱大保健" % (self.name, self.age, self.gender))

xiaoming = Person('小明','10岁','')
xiaoming.affair()
laozhang = Person('老张','100岁','None')
laozhang.affair()

5.计算圆的周长,面积

from math import pi
class Circle:
    def __init__(self,radius):
        self.radius = radius
    def premeter(self):
        return 2*pi*self.radius
    def area(self):
       return pi*self.radius*self.radius

c1 = Circle(1)
print(c1.area())
print(c1.premeter())

猜你喜欢

转载自www.cnblogs.com/wan2-0/p/10720384.html