python 面向对象编程以及类的介绍

# coding:utf-8
# 面向对象编程
# 利用对象的(属性和方法)去进行编码的过程即是面向对象编程

# 类的关键字 class
class Name(object):		
# class关键字 + 类名(首字母大写) + 小括号(括号内填写 object:为python中的通用对象,书写通用对象的 class 会带有更多的内置功能) + 冒号
    
    # 变量 = 变量的值
    # 可以定义 类 的变量
    
    def func(self):
        pass
    # 也可以定义 类 的函数:类函数内有个必传参数 'self' ,一定要书写在类函数的第一参数位,这是 python 内部的语法规定
    
# 需要注意的是 类的属性与函数的缩进要统一

# 类的参数:所有实例方法都要加self参数,且排在第一位,有且仅有一个;
# 含义:1,在类中定义的方法,第一个参数self指向调用该方法的实例对象,
# 2,在方法中通过self.属性  的形式可以访问对象的实例属性。
# 3,self是类函数中必传参数,有且有一个放在第一个位置;
# 4,self是一个对象,它代表着实例化的变量本身;
# 5,self可以通过点(.)来定义一个类变量,如 self.name = "jack"
# 6,self中的变量与含有self参数的函数可以在类中任一函数中调用
# 7,
class Person(object):
    name = None
    age = None

    def run(self):
        print(f"{self.name}的健身项目是\'跑步\'")
    def swim(self):
        print(f"{self.name}的健身项目是\'游泳\'")
    
jack = Person()
jack.name = "李华"
jack.run()

jack2 = Person()
jack2.name = "李华2"
jack2.swim()
jack2.top = 180
# print(jack.top)
print(jack2.top)
# 实例化对象可以自定义属性;每个实例化对象自定义的属性与其他实例化对象不通用
# Person类在实例化之后,依然只有自己的两个属性(name和age),实例化对象自定义的属性近作用于自己,并不能影响类

# 对self总结:
# 1,Python中的self代表的是类的实例,self在定义类的方法时是必须有的,
# 虽然在调用时不必传入相应的参数,self只有在针对类的情况下有意义,且只能用在python类的方法中

# 关键属性
# 属性 1,如果变量定义在类下面而不是类的方法下面,那么这个变量既是类的属性也是类实例的属性
class Cat(object):
    eyes = "有两只眼睛"
    legs = "有四条腿"

print(Cat.eyes)  # 有两只眼睛
cat = Cat()
print(cat.eyes) # 有两只眼睛

# 属性 2, 如果变量定义在类的方法下面,且加了self,那这个变量就是类实例的属性,不是类的属性,
# 没有加self则这个变量就是方法的局部变量,不是类属性也不是类实例属性
class Cat2(object):
    eyes = "三只眼睛"
    legs = "10种退"

    def __init__(self):
        self.color = "黑色"
        color_02 = "棕色"
cat2 = Cat2()
print(cat2.color) # 黑色
# print(cat2.color_02) # AttributeError: 'Cat2' object has no attribute 'color_02'

# 关于方法:
# 1,如果在类中定义函数时加了self,那么这个函数时类实例的方法,不是类的方法
class animal(object):
    def run(self):
        print("我是run方法")
    def eat():
        print("我是eat方法")

animal.eat()
am = animal()
am.run()

# 类的构造函数
# 构造函数是类中的一种默认函数,通过定义它可以在类实例化的同时,将参数传入其中

# 构造函数要在类中定义
# def __init__(self, a, b)		# def关键字 + __init__ + 小括号(括号内第一个传入的依然是 self ,后面再跟上希望实例化时传入的参数)
# 	self.a = a					# 在构造函数里,将参数绑定在 self 中,将变量通过 self 绑定之后,就可以在类的各个函数中进行调用了
#     self.b = b

# 构造函数用法
class Test(object):
    def __init__(self,a):
        self.a = a

    def run(self):
        print(self.a)

t = Test("您好")
t.run()



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值