Python中约定类以大写字母开头,函数以小写字母开头。
类的定义:
class Turtle():
#属性
color = 'green'
weight = 10
legs = 4
shell = True
mouth = '大嘴'
#方法
def climb(self):
print("我正在很努力的向前爬")
def run(self):
print("我正在飞快的向前跑")
def bite(self):
print("咬死你咬死你!")
类的调用:
tt = Turtle()
Turtle()
tt.climb()
tt.bite
继承:
class Mylist(list):
pass
list2 = Mylist()
list2.append(10)
list2.append(9)
list2.append(888)
list2
# [10, 9, 888]
list2.sort()
list2
# [9, 10, 888]
多态:都调用fun的函数,但是结果不同
class A:
def fun(self):
print('我是小A')
class B:
def fun(self):
print('我是小B')
a = A()
b = b()
a.fun()
b.fun()
self是什么:
Python的self相当于C++的this指针
由同一个类可以生成无数个对象,这些对象很类似(源于同一个类的属性和方法),使用self可以让Python知道在调用哪一个
例:
>>> class Ball:
def setName(self,name):
self.name = name
def kick(self):
print("我叫%s,该死的,谁替我" % self.name)
>>> a = Ball()
>>> a.setName('球A')
>>> b = Ball()
>>> b.setName('球B')
>>> c = Ball()
>>> c.setName('土豆')
>>> a.kick()
我叫球A,该死的,谁替我
>>> b.kick()
我叫球B,该死的,谁替我
>>> c.kick()
我叫土豆,该死的,谁替我
面向对象编程:init方法
class Ball:
def __init__(self,name):
self.name = name
def kick(self):
print("我叫%s,该死的,谁替我" % self.name)
b = Ball('土豆')
b.kick()
#我叫土豆,该死的,谁替我
公有和私有:
在Python中定义私有变量只需要在变量名或函数名前加上“_”两个下划线,那么这个函数或变量就会变成私有的了。
>>> class Person:
name = "黄静"
>>> p = Person()
>>> p.name
'黄静'
变私有:
>>> class Person:
__name = "黄静"
def getName(self):
return self.__name
>>> p = Person()
>>> p.getName()
'黄静'
#以 _类名__变量名 方式访问隐藏变量
>>> p._Person__name
'黄静'