# 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()
python 面向对象编程以及类的介绍
最新推荐文章于 2024-08-15 01:55:01 发布