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()

原文地址:https://www.cnblogs.com/Ian-learning/p/8325370.html

时间: 2024-10-25 00:17:25

Python学习-类的基本知识的相关文章

转:python学习——类中为什么要定义__init__()方法

学习Python的类,一直不太理解为什么一定要定义init()方法,现在简要谈一下自己的理解吧. 1.不用init()方法定义类定义一个矩形的类,目的是求周长和面积. 1 class Rectangle(): 2 def getPeri(self,a,b): 3 return (a + b)*2 4 def getArea(self,a,b): 5 return a*b 6 7 rect = Rectangle() 8 print(rect.getPeri(3,4)) 9 print(rect.

[python 学习] 类

#!/usr/bin/python # -*- encoding:utf-8 -*- class Animal: animal_num = 0 class Dog(Animal): #类帮助文档 'this is help' #两个下划线开头,类的私有属性,不能在类外部访问,类内部使用self.__dog_name访问 __Dog_name = 'dahuang' dog_num = 0 #累的构造函数,初始化实例时调用 def __init__(self, name, color): self

Python学习——模块的基本知识

# 定义# 模块:用来从逻辑上组织python代码(变量,函数,类,逻辑:实现一个功能),本质就# 是.py结尾的python文件(文件名:test.py,对应的模块名:test)# 包:用来从逻辑上组织模块的,本质就一个目录(必须带有一个_init.py文件) # 2.导入方法# import module name# import moduleI name,module2 name# from module alex import*-# from modulealex import ml,m

Python学习-字符串的基本知识

字符串的基本知识 根据所展示形式的不同,字符串也可以分为两类 原始字符串: 使用单引号包括:'liuwen' 使用双引号包括:"liuwen" 使用3个单引号包括 :'''liuwen''' 使用3个双引号包括:"""liuwen""" 非原始字符串:就是在原始字符串的基础是左侧添加一个字母r 字符串中的有趣操作 如果将一个字符串相加会得到什么结果?相乘会得到什么结果? str = "liu" + &quo

python学习-类属性和实例属性

#类属性和实例属性 class Tool(object): #类属性 total = 0 def __init__(self,new_name): #实例属性 self.name = new_name #类属性 Tool.total += 1 tool1 = Tool("a1") tool2 = Tool("a2") tool3 = Tool("a3") print(tool1.name) print(tool2.name) print(tool

Python 学习笔记 - 作用域小知识

Python的作用域和其他语言有所不同,他有几个小窍门来判断作用域. 1. Python里面没有块级别的作用域:只有函数级别的作用域. 比如说,下面这个例子,如果是Java或者其他语言,肯定报错name没有定义.Python里面因为不存在块级别的作用域,因此name直接就输出9了 >>> for i in range(10):     name=i print(name) ---------- 9 2. 作用域链的顺序是从内往外找,直到找不到为止 例如 >>> def 

(一)Python 学习第一天--基础知识,列表

1. .pyc文件 .pyc文件:在python3中,当模块运行时会自动生成在_pycache_文件夹中,其中c为compiled的缩写. Python是一门现编译后解释的语言,在运行时首先寻找.pyc文件,若没有先到内存先编译再解释,生成.pyc文件.如果源文件发生改动,则先对比对应的.pyc文件与源文件的时间戳. 2.数据类型 在Python2中当值大于2^64位时,为long型:Python3不存在long型,所有都为int型. 3.三元运算符 result = 值1  if   条件  

Python学习--类和对象

一.几个概念 类:代表对象的集合. 对象:对象包括特性和方法.特性只是作为对象的一部分的变量,方法则是存储在对象内部的函数.所有对象都属于某一个类,称为类的实例. 方法:绑定到对象特性上面的函数称为方法. 封装:指向程序中的其他部分隐藏对象的具体实现细节的原则. 继承:一个类可以使一个或者多个类的子类.子类继承超类的所有方法, 子类:当一个对象所属的类是另外一个对象所属类的子集时,前者就被称为后者的子类,后者就是前者的的超类. 二.类 2.1 创建类 在创建类之前,先说两个概念. 新式类:创建新

Python学习-类的继承

1 继承: 2 #python2 经典类是按深度优先来继承的,新式类是按广度优先来继承的 3 #python3 经典类和新式类都是按广度优先来继承的 4 5 6 7 #经典类:class People: 8 class People(object): #这个是新式类,多继承的时候有了改变 9 10 def __init__(self, name, age): 11 self.name =name 12 self.age = age 13 14 15 def eat(self): 16 print