创建类

class  frame(wx.Frame):  #创建一个类myframe,继承自wx.Frame

def  __init__ (self,src):     #构造函数,对象实例化的时候,自动

执行该函数里的内容,本例中实例化时需传入参数src

def  ww(self,a):              #定义一个方法(函数)

self.a  =  1             #定义一个属性(变量)

    a = 2

myframe = frame(‘C’)      #实例化,创建一个对象(实例/主体)

myframe.ww()     #对象调用类的方法,把对象本身作为参数传递给方法ww

frame.ww(myframe)    #同上,函数式写法

#对象会被赋值给方法的第一个形参,方法必须有一个参数,第一个参数代表传入对象(实例),通常用self

 

定义属性(变量)

self开头的变量,是实例变量,各个实例独立使用,只能在方法内创建,因为方法的第一个形参是self,方法外不存在self

class frame():

    def hanshu(self,a):

        self.a = a

 

myframe = frame()

myframe.hanshu(2)

print(myframe.a)

不用self定义的变量,是类变量,各个实例共用,如果定义在方法内,实例不能访问,因为定义的时候没有self。定义在方法外,实例可访问

class frame():

    a =1

    def hanshu(self):

        b =2

 

myframe = frame()

print(myframe.a)

print(myframe.b)

1                                  #print(myframe.a)输出1         

'frame' object has no attribute 'b'   #print(myframe.b)错误