#对象=属性+方法
class Turtle:#python中的类名称一般大写字母开
weight=10
legs=4#属性
def climb(self):
print('我正飞快的向前跑')#方法
class A:
def fun(self):
print('woshixiaoa')
class B:
def fun(self):
print('woshixiaob')
class Ball:#self表示当前对象
def setName(self,name):
self.name=name
def kick(self):
print('我叫%s,谁踢我'%self.name)
a=Ball()
a.setName('A')
a.kick()
构造方法:
#__init__(self,param1,param2)
class Ball2:
def __init__(self,name):
self.name=name
def kick(self):
print('我叫%s,谁踢我'%self.name)
b=Ball2('B')
b.kick()
私有化:加__
class Person:
__name="小甲鱼"
def getName(self):
return self.__name
p=Person()
p.getName()
#or p._Person__name
继承:
class Parent:
def hello(self):
print('正在调用父类的方法')
class Child(Parent):
pass
p=Parent()
p.hello()
#如果子类中定义与父类同名的方法或属性,则会自动覆盖父类对应的方法和属性
import random as r
class Fish:
def __init__(self):
self.x=r.randint(0,10)
self.y=r.randint(0,10)
def move(self):
self.x-=1
print('我的位置是:',self.x,self.y)
class Goldfish(Fish):
pass
class Carp(Fish):
pass
class Shark(Fish):
def __init__(self):
Fish.__init__(self)
self.hungry=True
def eat(self):
if self.hungry:
print("吃吃吃")
self.hungry=False
else:
print('吃不下了')
组合:
#组合
class Turtle:
def __init__(self,x):
self.num=x
class Fish:
def __init__(self,x):
self.num=x
class Pool:
def __init__(self,x,y):
self.turtle=Turtle(x)
self.fish=Fish(y)
def print_num(self):
print("水池里有乌龟%d只,小鱼%d只"%(self.turtle.num,self.fish.num))
pool=Pool(11,100)
pool.print_num()
class C:
def x(self):
print('x-man')
c=C()
c.x()#输出x-man
c.x=1#赋值后c.x()不能调用
一些bif:
#issubclass(class,classinfo)判断是否为
class A:
pass
class B(A):
pass
issubclass(B,A)#B是A类的子类, 返回True。否则返回False
issubclass(B,B)
issubclass(B,object)#都为true
#isinstance(object, classinfo)如果参数object是classinfo的实例,返回true
class Person(object):
pass
obj = Person()
isinstance(obj, Person)#true
#hasattr(object,name)函数用于判断对象是否包含对应的属性
#getattr(object,name,default)
#setattr(object,name,value)
#delattr(object,name)