面向对象编程通用:万物皆对象,对象都是会属于具体某个类的
万物皆对象–对象肯定是属于某个类–>类可以产生对象
class 类名:
类的方法:功能
类的属性:特征
比如:手机有:像素、外观好看、能拍照、能打电话; 打电话、拍照是功能,像素,外观是特征
简单来说:动词是方法,名词是特征
简单的对象与函数:
class Boy:
def coding(self,a,b): #--类的方法
return a+b
i=Boy()
print(i.coding(1,2))
创建对象:类名()
比如:t=BoyFriend() —这就是一个对象
对象具有类的所有属性和方法 调用 对象.属性 对象.方法
一般类+()就是对象
对象方法:必须是由对象来进行调用
self是什么? -->self指向的是实例化对象,而不是类本身,只是对象还没创建,不能用对象.属性来获取属性,只用对象.方法来获取方法,所以用self代替对象,一旦对象创建,就变成了对象.属性/方法
代码:
class Boy:
def __init__(self,a,b): #初始化函数
self.a=a #属性
self.b=b #属性
def coding(self): #--类的方法
print(self.a+self.b)
def coding_sum(self): #--类的方法
print (self.a + self.b)
i=Boy(1,2)
i.coding()
类方法和静态方法(我只知道有这两种方法,但目前还不太会用,先写,后面理解再补充)
类方法:类可以调用 对象可以调用 @classmethod 类方法
静态方法:类可以调用 对象可以调用 @staticmethod来装饰
静态方法:它跟类里面的属性、函数、没有任何关联的时候可以不用。静态方法跟普通的函数一致
class Boy:
def __init__(self,a,b): #初始化函数
self.a=a
self.b=b
@staticmethod
def coding_sum(a, b): # --类的方法
print (a-b)
@classmethod
def coding(self): #--类的方法
print(self.a+self.b)
什么时候用静态方法,什么时候用类方法?
当频繁使用一个方法时,就会用到静态方法
依赖具体的实例化参数和类的信息,就用类方法
继承
class 父类:
def i(self):
print('我是父类')
class 子类(父类):
def j(self):
pass
这就是简单的继承
子类调用父类的方法:子类可以拥有父类里面所有属性、所有方法 —可以直接调用
如果子类里没有父类的方法,可以称之为括展
子类继承父类包含初始化方法,要传参
子类有初始化,就不能调用父类含有初始化方法,比如:
class 父类:
def __init__(self,name):
self.name=name
def i(self):
print('我是父类')
class 子类(父类):
def __init__(self,k):
pass
def j(self):
pass