zoukankan      html  css  js  c++  java
  • python编程学习进度六

    今天看了《Python编程从入门到实战》一章中的一些知识点,对构造函数、析构函数、类变量、实例变量的理解进行一下 总结:

    1、构造函数:__init__(self,name,age,sex), 这个方法就是构造函数,在实例化的时候自动调用。所有如果这个函数内有打印的方法,当kate实例出来的时候会打印里面的信息。

    __init__方法的第一个参数永远都是self,表示创建实例本身,在__init__方法内部,可以把各种属性绑定到self,因为self指向创建的实例本身。

    有了__init__方法,在创建实例的时候,就不能传入空的参数了,必须传入与__init__方法匹配的参数,但self不需要传,Python解释器自己会把实例变量传进去。

    2、析构函数:__del__(self), 这个方法就是析构函数,是在实例被销毁时自动调用的。

    3、类变量: country = 'China' , 类变量不需要实例,可以直接使用, 如line 14

    4、实例变量: self.name = name, self.name 这种形式就是实例变量,需要实例化后才能使用, 如 line15就会报错,需要实例化line16的kate, 才能使用name, age, sex

    可以自由地给一个实例变量绑定属性,比如,给实例kate绑定一个language属性。

    kate.language = '中文'
    print(kate.language) #中文

    和普通函数相比,在类中定义的函数只有一点不同,就是第一个参数永远是实例变量self,并且,调用时,不用传递该参数。除此之外,类的方法和普通函数没有什么区别。比如school函数只需要传city就可以了。

    kate.school('北京') #凯特在北京上学

    下面是具体的代码段

    class Person(object):
        country = 'China' #类变量,不需要实例化,可以直接用
        def __init__(self,name,age,sex):#构造函数,实例化的使用自动调用
            self.name = name #实例变量,必须实例化之后才能用,也叫成员变量
            self.age = age
            self.sex =sex
        def say_my_country(self):
            print(self.country)#类变量可以在类里作为属性使用
        def school(self,city):
            self.city = city
            print('%s在%s上学' %(self.name,self.city))
        def __del__(self):#析构函数,实例销毁的时候自动调用
            print('实例销毁的时候自动调用')
    print(Person.country)#类变量,不需要实例化,可以直接用
    #print(Person.name)#实例变量,必须实例化之后才能用,AttributeError: type object 'Person' has no attribute 'name'
    kate = Person('凯特',18,'')
    print(kate.name)
    print(kate.age)
    print(kate.sex)
    print(kate.country) #China
    kate.say_my_country() #China
    kate.language = '中文' 
    print(kate.language) #中文
    kate.school('北京') #凯特在北京上学
  • 相关阅读:
    Servlet
    javaBean
    堆排序
    快速排序
    JSP9大内置对象
    include指令与<jsp:include>动作标识
    JSP指令标识
    TreeSet
    使用Docker存储之卷Volume
    Java学习之HttpClient的GET与POST请求
  • 原文地址:https://www.cnblogs.com/lover995/p/12269478.html
Copyright © 2011-2022 走看看