Python基础学习Day7-类、对象、魔法方法
2020-08-05 本文已影响0人
怕热的波波
心得:这次的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.