zoukankan      html  css  js  c++  java
  • 《零基础入门学习Python》学习过程笔记【36,37类】

    1self是什么 self相当与C++中的this(指本对象)

    当对象的方法被调用时,对象会将对象本身作为第一个参数传给这个方法的第一个参数

    2如何定义一个类?关键字class 类名开头第一个字母大写(和Java一样)

    >>> class A:
    	a=1
    	b=2
    	def haha(self,x):
    		self.i=x  #创建该对象内的变量self.i
    		self.x=x  #创建该对象内的变量self.x
    	def p(self):
    		print(self.i)  #在该类的其他方法中也可以读取该对象的变量self.i和self.x
    		print(self.x)
    	def change1(self):
    		self.i=1       #在该类的其他方法中还可以改变对象变量的值
    		self.x=1
    		print(self.i)
    		print(self.x)
    	def change2(self):
    		a=2            #这里只是创建了局部变量a,b,这两个值不会影响该类同名属性的值
    		b=2
    		print(a)
    		print(b)
    
    		
    >>> a1=A()
    >>> a1.haha(233)
    >>> a1.p()
    233
    233
    >>> a1.change1()
    1
    1
    >>> a1.change2()
    2
    2

    综上self.x 为该对象的变量,在该对象的方法中可以使用,使用时要写self.x不能省掉self。且不能在该类的外面对该变量进行使用,例如

    >>> a1.self.i  会报错

     该对象本身的变量可以在该变量的方法中使用


    3在写代码中出现了一个问题,这说明不能在函数内部直接使用该类的属性,如果使用那是只在该方法中创建了一个局部变量。该变量的改变,不会影响同名属性的改变

    >>> class B:
    	a=1
    	b=2
    	c=3
    	def __init__(self,a1,a2,a3):
    		a=a1
    		b=a2
    		c=a3
    	def ceshi(self):
    		a=1
    		b=1
    		c=1
    	def p3(self):
    		print(self.a)
    		print(self.b)
    		print(self.c)
    
    >>> b3=B()
    >>> b3.p3()
    1
    2
    3
    >>> b3.ceshi()
    >>> b3.p3()
    1
    2
    3

    4如何在类的方法内部使用该类的属性?self.方法名

    5.python中会被自动调用的方法? 被双下划线__包围的方法

    注:一个类只能有一个__init__()方法

    3__init__(self,[参数1],[参数2...])方法:在创建该类对象的时候被自动调用(相当于构造函数)

    >>> class B:
    	def __init__(self):
    		self.q=1
    		self.w=1
    		self.e=1
    	def p1(self):
    		print(self.q)
    		print(self.w)
    		print(self.e)
    
    		
    >>> b1=B()
    >>> b1.p1()
    1
    1
    1

    >>> class B:
    	def __init__(self,haha):
    		self.haha=haha
    	def p2(self):
    		print(self.haha)
    
    		
    >>> b2=B(233)
    >>> b2.p2()
    233

    6.在默认情况下,类中属性和方法的权限?   在默认情况下对象的属性和方法都是共有的,可以在外部通过对象名.来使用

    >>> class C:
    	a=1
    	def b(self):
    		print("233")
    
    		
    >>> c1=C()
    >>> c1.a
    1
    >>> c1.b()
    233

    7.如何在python中定义私有变量? 在变量名前加双下划线__

    >>> c1=C()
    >>> c1.__a
    Traceback (most recent call last):
      File "<pyshell#75>", line 1, in <module>
        c1.__a
    AttributeError: 'C' object has no attribute '__a'
    >>> c1.haha()
    1


    8.如何在函数外部直接访问该类的私有属性?

    将属性设置为私有权限实际上就是将该属性更名为 _类名__属性名 

    >>> c1._C__a
    1







  • 相关阅读:
    多样三角形
    字符串转化去重
    捕获异常里面的特殊异常
    sqlalchemy.exc.CompileError: (in table 'language_label', column 'name'): VARCHAR requires a length o
    机器学习总结
    找出两个列表中相同元素与不同元素
    正则去重
    mysql5.7 安装重置密码
    chrome快捷键
    golang select
  • 原文地址:https://www.cnblogs.com/iamjuruo/p/7470884.html
Copyright © 2011-2022 走看看