python类

1 类有一个名为 __init__() 的特殊方法(构造方法),该方法在类实例化时会自动调用,在定义类的时候,可以先在这个函数里面定义要使用的属性,这样在类里面写其它方法的时候更方便属性的调用,

class Rectangle():
    def getPeri(self,a,b):
        return (a + b)*2
    def getArea(self,a,b):
        return a*b

rect = Rectangle()
print(rect.getPeri(3,4))
print(rect.getArea(3,4))
print(rect.__dict__)
print(rect.__init__())
# 14
# 12
# {}
# None

class Rectangle():
    def __init__(self,a,b):
        self.a = a
        self.b = b
    def getPeri(self):
        return (self.a + self.b)*2
    def getArea(self):
        return self.a * self.b

rect = Rectangle(3,4)
print(rect.getPeri())
print(rect.getArea())
print(rect.__dict__)
print(rect.__init__(5,6))
# 14
# 12
# {'a': 3, 'b': 4}
# None
https://blog.csdn.net/geerniya/article/details/77487941?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task
View Code

2 self

self的本质是指代类new的对象实例,因为对于类中的方法,不同的对象要调用同一个方法,为了区别不同对象对同一个方法的调用,方法的第一个参数self即代表了调用该方法的对象本身,所以在class里面编写method的时候,就必须把变量的第一个位子留出来,用来指代未来call这个method的instance。

self在定义时需要定义,但是在调用时会自动传入。self的名字并不是规定死的,但是最好还是按照约定是用self,换成其它也是可以的,self总是指向调用时的类的实例。

# 在Python的解释器内部,当我们调用t.prt()时,实际上Python解释成Test.prt(t),也就是说把self替换成类的实例。
class Test:
    def prt(self):
        print(self)
        print(self.__class__)
t = Test()
t.prt()
# Test.prt(t)
# <__main__.Test object at 0x0000000001DE15F8>
# <class '__main__.Test'>
View Code

两种定义类属性的方法

# 这种定义方式new一个对象的时候,可以不添加对应的属性,即new一个学生的时候
# 是一个空表,当有了姓名和成绩时再输入
class Student:
    def __init__(self):
        self.name = None
        self.score = None
student = Student()
student.name = 'Tom'
student.score = 88
print(student.name, student.score)
# Tom 88

# 这种定义方式必须传值,不允许为空,
class Student:
    def __init__(self, name, score):
        self.name = name
        self.score = score
student = Student('Bob', 23)
print(student.name, student.score)
# Bob 23
View Code

ttt

 

 

 

 

 

 

 

1 https://blog.csdn.net/m0_37693335/article/details/82972925

 

https://blog.csdn.net/qq_25948717/article/details/81777508

posted on 2019-10-11 12:15  吃我一枪  阅读(142)  评论(0编辑  收藏  举报

导航