python OOP (1)

定义class

class 名字:

self参数

代表着实例,不代表类

定义函数def

def 各种函数一般要传入self

生成实例

x=myclass()

()是必要的

实例

class my_first_class: #新建类
    def setdata(self,value): #setdata函数
        self.data=value
    def display(self): #display函数
        print(self.data)
x=my_first_class() #创建实例
y=my_first_class()
x.setdata('string') #设置实例
y.setdata(3.1415)
x.display() #打印实例
y.display()

类继承

class 子类(父类)

子类可以重载父类的函数,并且继承其他默认的函数

如果出现了子类重载的函数那么仅仅只有这一个子类的函数发生了变化,不会影响到父类以及其他

实例

class my_first_class: #新建类
    def setdata(self,value): #setdata函数
        self.data=value
    def display(self): #display函数
        print(self.data)
x=my_first_class() #创建实例
y=my_first_class()
x.setdata('string') #设置实例
y.setdata(3.1415)
x.display() #打印实例
y.display()
### 继承
class my_second_class(my_first_class): #类继承
    def display(self): #重载display
        print('now value = %s'% self.data)
z=my_second_class() #创建继承的类的实例
z.setdata(42)
z.display() #实验重载display

运算符重载

①__init__

构造函数

②__add__

重载加法

③__str__

重载print

实例

class my_first_class: #新建类
    def setdata(self,value): #setdata函数
        self.data=value
    def display(self): #display函数
        print(self.data)
x=my_first_class() #创建实例
y=my_first_class()
x.setdata('string') #设置实例
y.setdata(3.1415)
x.display() #打印实例
y.display()
### 继承
class my_second_class(my_first_class): #类继承
    def display(self): #重载display
        print('now value = %s'% self.data)
z=my_second_class() #创建继承的类的实例
z.setdata(42)
z.display() #实验重载display
### 重载运算符
class my_third_class(my_second_class): #继承于第二个子类
    def __init__(self,value): #重载初始化用于my_third_class()
        self.data = value
    def __add__(self,other): #用于self+other
        return my_third_class(self.data+other)
    def __str__(self): #用于print(self)
        return 'The value is %s' %self.data
    def mul(self,other):
        self.data *=other
a=my_third_class('abc') #实验__init__
a.display()
print(a) #实验__str__
b=a+'xyz' #实验__add__
b.display()
print(b)
a.mul(3) #实验mul
print(a)
posted @ 2019-01-08 10:31  baccano!  阅读(154)  评论(0编辑  收藏  举报