Python面向对象知识点

一.类的创建

构造属性

class Circle:
    def __init__(self,o,r,color):
        self.o=o;
        self.r=r;
        self.color=color;

其它方法

 def zc(self):
        Zc=2*math.pi*self.r
        return Zc
    def area(self):
        s=math.pi*self.r**2
        return s

实例化对象

if __name__ == "__main__":
    r=eval(input("请输入半径"))
    circle=Circle((0,0),r,'red')#实例化对象
    C=circle.zc()#类中的调用方法
    S=circle.area()
    print("圆的周长为{0},面积为{1}".format(C,S))

二.私有属性

私有属性的定义

class Course:
    def __init__(self,Csite):
        self.__Csite=Csite #私有属性

私有属性必须用公有方法来返回

 def get__Csite(self):
        return self.__Csite

三.封装,继承,多态

封装:

Python面向对象知识点_第1张图片

继承:

语法格式;

class father():
    pass
class sub(father):
    pass

Python面向对象知识点_第2张图片

 多继承语法

class father():
    pass
class mother():
    pass
class sub(father,mother):
    pass

 案例

Python面向对象知识点_第3张图片

重写父类方法:

Python面向对象知识点_第4张图片

 

 多态:

多个子类继承父类中的方法进行重载

案例

Python面向对象知识点_第5张图片

 四.面向对象的各种方法

1.静态方法

意思是把 @staticmethod 下面的函数和所属的类截断了,这个函数就不属于这个类了,没有类的属性了,只不是还是要通过类名的方式调用  


class Person:
    def __init__(self, name):
        self.name = name
 
    @staticmethod  # 把eat方法变为静态方法
    def eat(x):
        print("%s is eating" % x)
 
 
d = Person("xiaozhao")
d.eat("Sam")   

2.类方法

用@classmethod标记,不能访问实例对象的属性与变量,只能访问类的属性与变量

class Person:
    name = "詹姆斯"

    def __init__(self, name):
        self.name = name

    @classmethod  # 把eat方法变为类方法
    def eat(self):
        print("{0}正在吃饭".format(self.name))

d = Person("xiao")
d.eat()

你可能感兴趣的:(python,开发语言)