Python基础学习Day7-类、对象、魔法方法

心得:这次的Python基础学习渐渐开始深入,涉及更多编程类内容,考虑到数据分析方向,可能用不到这么深入的内容,而且现在工作逐渐展开,没有太多时间研究,要等到周末才能花时间看了,可惜了准备材料的小伙伴付出的时间。

类与对象

class Turtle:
    #属性
    color = 'green'
    weight = 10
    legs = 4
    shell = True
    mouth = '大嘴'
    
    #方法
    def climb(self):
        print('我正在很努力的向前爬……')
    def run(self):
        print('我正在飞快的向前跑……')
    def bite(self):
        print('有的吃,真满足……')
    def sleep(self):
        print('困了,睡了,晚安,zzz')

tt = Turtle()
print(tt)
#<__main__.Turtle object at 0x000002E24358A5F8>

tt.climb()
tt.sleep()
#我正在很努力的向前爬……
#困了,睡了,晚安,zzz

class Mylist(list):
    pass
lst = Mylist([1,3,4,5,2])
lst.sort()
lst
#[1, 2, 3, 4, 5]

类的方法与普通的函数只有一个特别的区别 —— 它们必须有一个额外的第一个参数名称(对应于该实例,即该对象本身),按照惯例它的名称是 self。在调用方法时,我们无需明确提供与参数 self 相对应的参数。

class Ball():
    def setname(self, name):
        self.name = name
    def kick(self):
        print('我叫%s, 谁踢我……'%self.name)
a = Ball()
a.setname('球A')
a.kick()
#我叫球A, 谁踢我……

#魔法方法,自动调用
class Ball():
    def __init__(self, name):
        self.name = name
    def kick(self):
        print('我叫%s, 谁踢我'%self.name)
a = Ball('球A')
a.kick()
#我叫球A, 谁踢我

组合

class Fish:
    def __init__(self, x):
        self.num = x

class Turtle:
    def __init__(self, x):
        self.num = x
        
class Pool:
    def __init__(self, x, y):
        self.fish = Fish(x)
        self.turtle = Turtle(y)
    def print_num(self):
        print('There are %d fish and %d turtle.'%(self.fish.num, self.turtle.num))
p = Pool(3,5)
p.print_num()
#There are 3 fish and 5 turtle.

你可能感兴趣的:(Python基础学习Day7-类、对象、魔法方法)