Python,  技术学习

Python笔记四

Python中的类和对象:

class Man:
    def setname(self, name):
        self.name = name#self相当于this指针
    def saysomething:
        print('%d说:啊啊啊啊!' % self.name)
a = Man()
b = Man()
a.setname('kishere')
b.setname('god')
a.saysomething()#输出kishere说:啊啊啊啊!
b.saysometing()#输出god说:啊啊啊啊!

#__init__方法:
class Ball:
    def __init__(self, name):#类似于构造函数
        self.name = name

#私有成员的定义:
class Person:
    __name = "kishere"#用双下划线开头的变量就会被定义为私有成员
print(p._Person__name)#实际上可以用这种方法访问到私有成员, python并没有访问权限机制

继承:

class Parent:
   def hello(self):
        print("hello from father!")
class Child(Parent):#Child类继承了Parent类
    super().__init__()#调用父类的__init__()方法
    pass#啥都不做占位符
class Turtle:
    def __init__(self, x):
        self.num = x
class Fish:
    def __init__(self, x):
        self.num = x
class Pool:
    def __inint__(self, x, y):#把类的实例化放到一个新的类里就叫做组合
        self.turtle = Turtle(x)
        self.fish = Fish(y)

    def  print_num(self):
        print('水池中共有乌龟%d只, 鱼%d条' % (self.turtle, self.fish))

类, 类对象, 实例对象:

#类在被定义以后也会成为一个对象
class C:
    def x(self):
        print('kishere')
c = C()
c.x = 1
c.x()#这里会报错, 因为新定义的c.x会覆盖c.x()
#在类中的方法必须定义self参数, 否则就无法调用在实例对象中调用了, 只能在类对象中调用, 相当于static方法

构造和析构:

#python的__init__()是初始化方法
#__new__()才是构造函数
class Capstr(str):
    def __new__(cls, string):
        string = string.upper()
        return str.__new__(cls, string)
a = Capstr('kishere is god')
#析构函数
    def __del__(self):
        print('Capstr析构!')
        #发生del操作时不一定会执行, 如果多个标签应用一个实例对象, 当引用计数为0时才会执行

留言

您的电子邮箱地址不会被公开。 必填项已用*标注