Python类,定义类,self

一切皆对象
面向对象的三大要素
  • 封装:同一功能的放一起
  • 继承
  • 多态:多种形态

class Classname
调用:class = Classname()

函数的写法
//标识 函数名字():
def funName():
//有冒号就要缩进一个Tab,或四个空格
    ......
//在Python中所有的函数都有返回值,如果你没有给予return则默认返回出None,
//如果你给予了,则返回你给予的值
    return.....

//标识 类名
class Classname(object):
    ......
  • 例如:输入一个数字,返回这个数字的平方
def joker(x):
	return x ** 2
print(joker(100))
  • 进度条
import time
	def joker():
		for i in range(1,101):
			time.sleep(1)
			print('%d'%i)
			print('%d%%\r'%('#'i,i),end=" ",flush=Ture)
	joker()
知识点
  1. 导入库,import+库名
  2. for循环 计数情况则使用 range(start,end,[step])
    range的区间是一个前闭后开:例如1-100 写成(1,101)
    time.sleep(1) //沉睡一秒
  3. 格式化输出
    (1)%——$%() %d后接整型,%f接浮点型,%s接字符串
    (2){}——format(),它可以直接传入任何类型,然后格式化输出
  4. print 控制台(terminal)打印
    (1)end 以…方式结尾,默认以换行符"\n"结尾
    (2)flush刷新缓冲区
//类中的函数可以有自己的参数
//当你想共享这个参数的时候,那么就打上"self"的印记.
class A(object):
    def __init__(self,a):
        self.a = a
    def B(self,b):
        self.b = b
        print(b)
    def C(self):
        print(self.b)
        
J = A(1000)
J.B(10)
J.C()

定义类

  • 要点:
    object不是一个参数
    self只是一个标识
class Student(object):
    def __init__(self,name):
      	# 多个打印用","进行分隔.
        print(name)

Student(100)
  • 定义类只有两步:
    (1) 使用标识符class ClassName(object):
    (2) 重写__init__函数,但是需要记住,一定要打上一个"self"的标记
    因为后面会学到继承,当在继承的时候可能就会有函数名相撞的情况.
    或者说,类中会含有多个变量,多个函数,那么就需要使用"self"手段去区分.
    (3)类的传参是在__init__函数中的.需要注意的是,如果你的参数可能被多个函数都使用,那么
    你才在__init__函数中去定义参数
    • 例:输入两个数,打印这两个数的和,差,乘,除,取余,平方
    class func(object):
    	def __init__(self,a,b)
    		print(a+b,a-b,a*b,a/b,a%b,a**2,b**2)
    func(3,4)
    
    • 例:输入一个年龄,如果年龄大于18,可观岛国片,<=18动画片
     def watch_av(self):
         if self.age < 18:
             print('%s只能观看《熊出没》.' % self.name)
         else:
             print('%s正在观看岛国爱情动作片.' % self.name)
    
    • 要点:
      (1) 在Python2中这个object一定要写,但是在Python3中可写可不写(默认就继承了object)
      (2) __init__是一个特殊方法用于在创建对象时进行初始化操作
      (3)在类中,一切的变量和函数都要印记(self)
    • 王者荣耀案例:
    class hero(object):
      def __init__(self,mode):
          self.mode=mode
      def check1(self):
          if self.mode == 0:
              print("人机")
          elif self.mode  == 1:
              print("多人")
          else:
              print("对战")
      def check2(self):
          res=input("输入")
          print(res)
      def check3(self):
          print("请选择英雄:典韦,赵云,鲁班")
          self.mode=input(">>")
      def check4(self):
          if self.mode=="典韦":
              print("典韦:战斗力-2899,防御力-3444")
          elif self.mode=="赵云":
              print("赵云:战斗力-3455,防御力-4788")
          elif self.mode=="鲁班":
              print("鲁班:战斗力-3232,防御力-3277")
      def check5(self):
          import numpy as np
          res=np.random.choice(["典韦","赵云","鲁班"])
          print(res)
      def check6(self):
          print("是否开始游戏?")
          self.mode=input(">>")
          print(self.mode)
          if self.mode=="yes":
              print("正在加载中")
          else:
              print("正在退出")
    
    name=hero(1)
    name.check1()
    name.check2()
    name.check3()
    name.check4()
    name.check5()
    name.check6()
    
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值