python类的基础知识1

10、类

10.1 类的定义

面向过程:根据业务逻辑从上到下写代码,强调的是每一步都得亲自完成

面向对象:将数据和函数一起封装,减少重复代码,绝对相信一个人,很多操作我让他代替我执行.

10.2 类的表达形式

类的名称:类名,大驼峰式命名规则,类名跟在class后面
类有属性:一组数据(静态数据)
类的方法(函数):对其的一些操作(行为)

例子:
狗:
类名:DOG
属性:品种、毛色、性别、名字、尾巴、腿儿个数
方法:跑、叫、咬人、拆家、吃饭

10.3 类的案例

class DogInfo(object):
	def __init__(self,leg):
		#初始化操作,定义的是属性,实例属性
		self.leg = leg
	def bark(self):
		print('狗会叫')
		
注意点:
1、self这个形参,代表的就是实例对象,在使用的过程中进行自动调用
2、在init这个魔法方法里面,定义的都是实例的属性
3、DogInfo()创建的是实例化对象,注意,此刻init方法会被自动调用,如果init需要除了self以外的参数,在此刻的()中,需要直接传递

10.4 通过类创建实例

实例 =  类名()
注意点:
如果有init需要传参,那么()填写init的参数

10.5 调用实例的属性

10.5.1 在类的内部

class DogInfo(object):
	def __init__(self,leg):
		#初始化操作,定义的是属性,实例属性
		self.leg = leg
	def bark(self):
		#在方法中调用实例属性
		print(self.leg)
		print('狗会叫')
        
注意点:
在方法中调用的实例属性,self.属性名调用,因为self指向的就是实例

10.5.2 在类的外面调用

class DogInfo(object):
	def __init__(self,leg):
		#初始化操作,定义的是属性,实例属性
		self.leg = leg
	def bark(self):
		#在方法中调用实例属性
		print(self.leg)
		print('狗会叫')
		
在类的外面调用:
1、创建实例
dog = DogInfo(4)
2、调用属性
dog.name


注意点:
在类的外部,通过创建对象来调用实例属性

10.6 通过实例调用方法

10.6.1 在类的外面调用方法

class DogInfo(object):
    def __init__(self,leg):
        #初始化操作,定义的是属性,实例属性
        self.leg = leg
    def bark(self):
        #在方法中调用实例属性
        print(self.leg)
        print('狗会叫')

dog = DogInfo(4)
dog.bark()

注意点:
通过实例调用
如果方法需要传参,在方法的()里面直接写入实参

####10.6.2在类的内部调用方法

class DogInfo(object):
    def __init__(self,leg):
        #初始化操作,定义的是属性,实例属性
        self.leg = leg
    def bark(self):
        #在方法中调用实例属性
        print(self.leg)
        print('狗会叫')

    def use_bark(self):
        self.bark()
        

dog = DogInfo(4)
dog.use_bark()

注意点:
在类的内部调用,也是通过self.方法名()

10.7 动态增加临时属性并且获取

class DogInfo(object):
    def __init__(self,leg):
        #初始化操作,定义的是属性,实例属性
        self.leg = leg
    def bark(self):
        #在方法中调用实例属性
        print(self.leg)
        print('狗会叫')


dog1 = DogInfo(4)
dog1.name = '小白'
print('临时属性的访问',dog1.name)

dog1.bark()

注意点:
1 关于实例属性与临时属性区别
	实例属性是只要通过当前类创建的实例对象,都具有的
	临时属性,是一个实例具有的,其他实例对象可有可无
2、在写web的时候,可能会为了方便起见,加的

10.8 init new方法

@staticmethod # known case of __new__
def __new__(cls, *more): # known special case of object.__new__
    """ Create and return a new object.  See help(type) for accurate signature. """
    pass
    

def __init__(self): # known special case of object.__init__
    """ Initialize self.  See help(type(self)) for accurate signature. """
    pass

注意点:

1、new方法创建并且返回新实例对象

2、init方法完成实例的初始化

3、new先用

10.9 str

class DogInfo(object):
    def __init__(self,leg):
        #初始化操作,定义的是属性,实例属性
        self.leg = leg
    def bark(self):
        #在方法中调用实例属性
        print(self.leg)
        print('狗会叫')


dog1 = DogInfo(4)
print(dog1)

展示:
<__main__.DogInfo object at 0x0000000002859C50>

使用str

class DogInfo(object):
    def __init__(self,leg):
        #初始化操作,定义的是属性,实例属性
        self.leg = leg
    def bark(self):
        #在方法中调用实例属性
        print(self.leg)
        print('狗会叫')
    def __str__(self):
        return '狗'


dog1 = DogInfo(4)
print(dog1)

展示:

狗

注意点:

return 字符串,’’

上一篇:rails 数据验证


下一篇:iOS蓝牙开发(4.0)详解