ptyhon 函数和对象

定义一个函数

你可以定义一个由自己想要功能的函数,以下是简单的规则:
函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。
任何传入参数和自变量必须放在圆括号中间,圆括号之间可以用于定义参数。
函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
函数内容以冒号起始,并且缩进。
return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

class Di_Ban(object):
    def __int__(self, area, Color):
        '''  """初始化方法
        :param area:
        :param Color:
        :return:
        '''
        self.area = area
        self.Color = Color

    def __str__(self):
        return '地板面积:{},地板的颜色{}'.format(self.area, self.Color)

qing = Di_Ban(1,'黄色')
print(qing)
class Home(object):
    def __int__(self, Size, site):    """初始化方法
        self.size = Size
        self.site = site
        # 剩余面积
        self.free = Size
        # 添加地板
        self.itmes = 0
    def __str__(self):
        return '房子面积{},房子地址{}'.format(self.size, self.site)

    def Tie(self, time):
        '''贴地板'''
        # 剩余面积
        print('{}'.format(time))
        if self.free < time.area:
            return '房子已经贴满了....'
        # 剩余面积减去地板面积
        self.free = self.free - time.area

        self.itmes +=1
        print('{}添加地板'.format(self.itmes))

	 #有类 创建 对象
	 #创建地板
Qing = Di_Ban(1,'黄色')
a1 = Di_Ban(2,'红色')
a2 = Di_Ban(3,'好色')
	#创建房子
home = Home(150,'地址')
 	#创建出来房子 贴地板(地板对象)
home.Tie(Qing)
home.Tie(a1)
home.Tie(a2)
print(home)
 i = 0
 while i < 10:
     i = i + 1
    if i == 5:
       # break   #1234  跳出循环,不再执行
    	 continue  #1234678910  跳出本次循环,执行下一次
		# pass   # 不做任何事情,只起到占位的作用
       print(i, end='')

import random 没有安装 random 随机包

 # 剪刀0 石头1 布2
user = int(input('大佬,请出拳'))  # 用户输入
com = random.randint(0,2)  #电脑随机一个
print('com' = com)
if (user==0 and com==2) or (user==1 and com==0) or (user==2 and com==1) :
	print('小菜了,还想与我搞')
elif user == com:
	print('平局,还想与我搞')
else:
	print('输了我服气')

#元组 tup2 = (1, 2, 3, 4, 5 )
#列表 tup2 = [1, 2, 3, 4, 5 ]
#字典 tup2 = {key1 : value1, key2 : value2 }  字典的每个键值(key=>value)对用冒号(:)分割
#集合 tup2 = {'apple', 'orange', 'apple', 'pear', 'orange', 'banana'} 可以使用大括号 { } 或者 set() 函数创建集合,
#关键字end可以被用于防止输出新的一行,或者在输出的末尾添加不同的字符:
name = [i for i in range(10)]
print(name)   # [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
name = [i for i in range(10) if i % 2 == 0]
print(name)  # [0, 2, 4, 6, 8]
“编程”函数采用一组参数(也可以没有参数),在其中执行语句,并可能返回某些内容(数据类型,对象甚至是其他函数)。

1、–定义

 使用def关键字定义Python函数。我们还需要指定一个函数名称和一些参数
def hello_world():
    print("Hello World")
'''
a = 7
b = 8
c = 9
def is_even(nr):
		 if nr % 2 == 0:
		    print('ta shi {} is even'.format(nr))
		 else:
		    print('wo shi {} is odd'.format(nr))
is_even(a)
is_even(b)
is_even(c)

2、命名参数

print()
def display_info(name, grades):
    print("Name: {}; Grades: {}".format(name, grades))
display_info("Python", [10, 6, 7])
display_info([8, 10, 8], "Python")
display_info(grades=[8, 10, 8], name="Python")

3、默认值

def raise_power(nr, pwr=2):
    return pow(nr, pwr)
print(raise_power(5))    # 调用带有单个参数(nr)的函数,它总是返回它的 平方
print(raise_power(5, 4))  # 添加第二个参数,该函数将使用其值来表示该数字的幂。

4、对象

class  Car(object):  # class关键字定义了一个名为Car的新对象
    # __init__是一个特殊的方法,在创建Car对象时总是调用它。我们想要在__init__中做的是将我们发送的值放在对象属性中
    def __init__(self, brand_att, model_att, color_att): # Self总是指对象本身
        self.brand = brand_att
        self.model = model_att
        self.color = color_att
my_tesla = Car("Tesla", "Model 3", "white")
print(my_tesla.brand)
print(my_tesla.model)
print(my_tesla.color)
my_honda = Car("Honda", "Civic", "red")
print(my_honda.brand)
print(my_honda.model)
print(my_honda.color)

5、继承–继承允许使用旧类创建新类。新类具有旧类的所有属性和方法,以及添加到其中的任何新属性和方法。

class Dog(object):
 	def __init__(self):   """初始化方法
		print("I am a dog")
 def eat(self):
 print("I eat dog food")
 class Cat(object):
 def __init__(self):
 print("I am a cat")
 def eat(self):
 print("I eat cat food")
 my_dog = Dog()
 my_cat = Cat()
 my_dog.eat()
 my_cat.eat()

6、使用对象

a = list() 		#调用list类的构造函数,创建一个list类的实例a
print(a)
a.append(1)
a.append(3)
a.append(2)		#调用list类的append方法,在[]中添加成员1,3,2
print(a)

7、使用对象

class Foo:
    def __init__(self, name, age):    """初始化方法
        self.name = name
        self.age = age
    def detail(self):
        print(self.name)
        print(self.age)

obj1 = Foo('chengd', 18)
obj1.detail()
#Python默认会将obj1传给self参数,即:obj1.detail(obj1),
#所以,此时方法内部的 self = obj1,即:self.name 是 chengd ;self.age 是 18

obj2 = Foo('python', 99)
obj2.detail()
#Python默认会将obj2传给self参数,即:obj1.detail(obj2),
#所以,此时方法内部的 self = obj2,即:self.name 是 python ; self.age 是 99x

8 定义实现功能的类

class Person:
    def __init__(self, na, gen, age, fig):   """初始化方法
        self.name = na
        self.gender = gen
        self.age = age
        self.fight =fig
    def grassland(self):
        """注释:草丛战斗,消耗200战斗力"""
        self.fight = self.fight - 200

    def practice(self):
        """注释:自我修炼,增长100战斗力"""
        self.fight = self.fight + 200

    def incest(self):
        """注释:多人游戏,消耗500战斗力"""
        self.fight = self.fight - 500

    def detail(self):
        """注释:当前对象的详细情况"""
        temp = "姓名:%s ; 性别:%s ; 年龄:%s ; 战斗力:%s" % (self.name, self.gender, self.age, self.fight)
        print(temp)

cang = Person('苍井井', '女', 18, 1000) # 创建苍井井角色
dong = Person('东尼木木', '男', 20, 1800) # 创建东尼木木角色
bo = Person('波多多', '女', 19, 2500) # 创建波多多角色

cang.incest()   #苍井空参加一次多人游戏
dong.practice() #东尼木木自我修炼了一次
bo.grassland()   #波多多参加一次草丛战斗

#输出当前所有人的详细情况
cang.detail()
dong.detail()
bo.detail()

cang.incest() #苍井空又参加一次多人游戏
dong.incest() #东尼木木也参加了一个多人游戏
bo.practice() #波多多自我修炼了一次

#输出当前所有人的详细情况
cang.detail()
dong.detail()
bo.detail()

#以上就是本节对于面向对象初级知识的介绍,总结如下:
#面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用
 #类 是一个模板,模板中包装了多个“函数”供使用
 #对象,根据模板创建的实例(即:对象),实例用于调用被包装在类中的函数
#面向对象三大特性:封装、继承和多态

class Foo:
    def __init__(self, name, age, gender):   """初始化方法
        self.name = name
        self.age = age
        self.gender = gender
    def kanchai(self):
        print("%s,%s岁,%s,上山去砍柴" % (self.name, self.age, self.gender))
    def qudongbei(self):
        print("%s,%s岁,%s,开车去东北" % (self.name, self.age, self.gender))
        print("{0},{1}岁 ,{2}开车去东北+++++++".format(self.name, self.age, self.gender))  # 不设置指定位置,按默认顺序
        print("{},{}岁 ,{}开车去东北---------".format(self.name, self.age, self.gender))
        print("网站名:{name}, 地址 {url}".format(name="菜鸟教程+++++", url="www.runoob.com"))
        site = {"name": "菜鸟教程", "url": "www.runodhjkopob.com"}
        print("网站名:{name}, 地址 {url}".format(**site))
    def dabaojian(self):
        print("%s,%s岁,%s,最爱大保健" % (self.name, self.age, self.gender))
xiaoming = Foo('小明', 10, '男')
xiaoming.kanchai()
xiaoming.qudongbei()
xiaoming.dabaojian()
print()

二、继承

class Animal:
    def eat(self):
        print("%s 吃 " % self.name)
    def drink(self):
        print("%s 喝 " % self.name)

    def shit(self):
        print("%s 拉 " % self.name)

    def pee(self):
        print( "%s 撒 " % self.name)

class Cat(Animal):
    def __init__(self, name):
        self.name = name
        self.breed = "猫"
    def cry(self):
        print('喵喵叫')

class Dog(Animal):
    def __init__(self, name):    """初始化方法
        self.name = name
        self.breed = '狗'
    def cry(self):
        print('汪汪叫')

### 执行

c1 = Cat('小白家的小黑猫')
c1.eat()
c2 = Cat('小黑的小白猫')
c2.drink()

d1 = Dog('胖子家的小瘦狗')
d1.eat()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值