1、类的定义
语法:
2、构造方法
类的构造方法或初始化方法,当创建了这个类的实例时就会调用该方法实例化对象时时可以传入参数的,这些参数会自动传入_ init _()方法中,可以通过重写这个方法来定义对象的初始化操作定义构造方法时,self是必要的参数且为第一个参数若在Python中定义类时没有定义_init_()方法,则在实例化时系统会自动调用默认的构造方法(无参的_init_()方法)一个类中可以定义多个构造方法,但是实例化类时只会实例化最后的构造方法,即后面的构造方法会覆盖前面的构造方法,并且需要根据最后一个构造方法的形式进行实例化(参数与最后一个构造方法的参数一致),因此一个类中最好只定义一个构造方法初始化实例包括:定义和初始化实例属性或调用类的一些方法语法: def_init_(self): <语句> class Myclass: i=612 def __init__(self,you): self.you=you def func(self,me): self.me=me return self.me+" like "+self.youuser=Myclass("lion") print("调用类的属性:",user.i) print("调用类的方法:",user.func("monkey"))
调用类的属性:612
调用类的方法:monkey like lion
分析这段代码,一开始看着有点打脑壳,跟Java面向对象类的定义存在很多不一样。在定义类中函数时,通常需要将函数的第一个参数定义成self,而self指向对象本身。下面一个例子
class Breakfast: def set_name(self,name): self.name=name def get_name(self): return self.namea=Breakfast()b=Breakfast()a.set_name("milk")b.set_name("bread")print(a.get_name())print(b.get_name())milk
bread
对象a,b在分别调用set_name()和get_name()方法时,self分别指向了a,b,即对象自身。
3、内置类属性
①_dict_:类的属性(包含一个字典,由类的数据属性组成)
②_doc_:类的文档字符串
③_name_:类名
④_module_:类定义所在的模块(类的全名称是’_ main _.className’,如果类位于一个导入模块mymod中,那么className._module _等于mymod)
⑤_bases _:类的所有父类构成元素(包含了由父类组成的元组)
4、类的实例
①创建类实例
②内置函数isinstance()
作用:测试一个对象是否为某个类的实例
③内置函数type()
作用:查看对象类型