zoukankan      html  css  js  c++  java
  • Python学习-类的基本知识

    #! /usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author linux ku
    
    
    class Dog():
        def __init__(self, name):
            self.name = name
    
        def bulk(self):
            print("%s : Wang wang wang!"%self.name)
    
    
    
    
    dog1 = Dog("dog1")
    
    dog2 = Dog("dog2")
    
    dog1.bulk()
    dog2.bulk()
    
    
    class Role(object):  #类名
        n = 222    #类变量 :先找实例变量然后再找类变量
    
        def __init__(self, name, role, weapon, life_value=100, money=15000, secret = "secret"):  #构造函数
    #构造函数,这个东西的目的,我觉得是再内存中开辟一个位置,相当于是给了一个铭牌号。
    #在实例化的时候做一些类的初始化的工作。
    #内存的运行是,内存的门牌号其实是在赋值的时候进行的,比如 r1 = Role(r1,xxx,xx),时候申请一下,然后在运行这个构造函数的时候把具体的内容传入
    #运行构造函数的时候是,self是r1传入赋予r1的值,所以self其实就是用来区分的。所以说参数self就是预留给实例化名称的。
            self.name = name  #实例变量(静态属性),作用域是在实例的本身
            self.role = role
            self.weapon = weapon
            self.life_value = life_value
            self.money = money
            self.__secret = secret  #私有属性,只能在内部的方法中可以改动
    
    #下面的函数是在类里面的,没有在实例化的地方存起来的
        def shot(self): #这里的self是实例化的具体名称,标志着地址
            print("shooting...")
    
        def got_shot(self):  #类的方法,功能(动态属性)
            print("ah...,I got shot...")
    
        def show_secret(self):
            print("The secret is %s" %self.__secret)
    
        def __secret_method(self):  #私有方法,只能内部调用
            print(self.__secret)
    
        def show_secret_method(self):
            self.__secret_method()
    
        def buy_gun(self, gun_name):
            print("just bought %s" % gun_name)
    
        def show_all_vari(self):
            print("All the vari: %s" % {self.name,self.role,self.money,self.life_value} )
    
    
    #析构函数:在实例释放、销毁的时候执行的,通常用于做一些收尾工作,如关闭一些数据库链接,打开的临时文件
    #这个函数会在程序退出的时候自动使用,也可以手动提前使用 del r1
        def __del__(self):
            print("end the example.%s " % self.name)
            print("or do other necessary work.")
    
    
    
    r1 = Role('Alex', 'police', 'AK47')  #生成一个角色
    
    r1.show_all_vari()
    r1.got_shot()  #实际是Role.got_shot(r1)
    print("this is secret method:")
    r1.show_secret_method()
    print("this is secret property:")
    r1.show_secret()
    
    
    print("---------")
    
    r2 = Role('Jack', 'terrorist', 'B2')  #生成一个角色
    r2.got_shot()
  • 相关阅读:
    斐波那契数列
    用两个栈实现队列
    从尾到头打印链表
    HDOJ5877(dfs序+离散化+树状数组)
    HDOJ5876(补图的最短路)
    POJ3090(欧拉函数)
    POJ2478(欧拉函数)
    POJ2407(欧拉函数)
    POJ2142(扩展欧几里得)
    POJ3020(最小边覆盖)
  • 原文地址:https://www.cnblogs.com/Ian-learning/p/8325370.html
Copyright © 2011-2022 走看看