Python之面向对象一

2020-09-15  本文已影响0人  止于枯骨1

1.面向对象的简介

2.类(class)

#语法
class 类名([父类]):
    代码块
class MyClass:
    pass
mc = MyClass() # mc是通过MyClass创建的对象 mc是MyClass的实例
# isinstance() 用来检测一个类是否是另一个类的实例
 r = isinstance(mc,MyClass)
print(r)
# 类也是一个对象 类是一个用来创建对象的对象
# 类是type类型的对象,定义类实际上就是定义了一个type类型对象
print(id(MyClass),type(MyClass))


# 可以像对象中添加变量,对象中的变量我们也称之为属性
# 语法 对象.属性名 = 属性值
# mc.name = '葫芦娃'
print(mc.name)
输出结果:
True
140486099662624 <class 'type'>
葫芦娃

3.类的定义

class Person:
    # 在类中定义的变量,将会成为所有实例的公共属性
    # 所有实例都可以访问这些变量
    name = '葫芦娃'
    # 在类中定义的函数我们称之为方法
    # 这些方法可以通过类的所有实例来访问
    # 如果是方法调用的时候默认传递一个参数,所以方法中至少要定义一个形参
    def speak(a):
          print('葫芦娃救爷爷')
p1 = Person()

p1.name='金刚葫芦娃'
print(Person.name)
print(p1.name)
p1.speak()
#实例为什么能访问到类中的属性和方法
#因为类中定义的属性和方法都是公共的,任何该类的是咧都能访问


输出结果:
葫芦娃
金刚葫芦娃
葫芦娃救爷爷

class Person:
     name = '葫芦娃'
     def speak(a):
         print('大家加油!!')
print(p1.age)
输出结果:
报错:'Person' object has no attribute 'age'

4.参数self

4.1属性和方法

4.2 self

# 定义一个表示人的类
class Person:

    name = '葫芦娃'
    # 如果是方法调用的时候默认传递一个参数,所以方法中至少要定义一个形参
    # 第一个参数就是调用方法的本身
    # 如果是p1调用,则第一个参数就是p1
    # 如果是p2调用,则第一个参数就是p2
    # 一般我们都会将这个参数命名为self

    def speak(self):
        print('加油!!%s'%self.name)
        # print(a)
p1 = Person()
p2 = Person()
p1.name = '钢铁侠'
p2.name = '绿巨人'
p1.speak() # 加油!!钢铁侠
p2.speak() # 加油!!绿巨人

输出结果:
加油!!钢铁侠
加油!!绿巨人

上一篇 下一篇

猜你喜欢

热点阅读