-
在外部访问私有属性将会抛出异常,提示没有这个属性。
虽然私有属性无法从外部访问,但是,从类的内部是可以访问的。私有属性是为了保护类或实例属性不被外部污染而设计的。查看全部 -
在类属性和实例属性同时存在的情况下,实例属性的优先级是要高于类属性的,在操作实例的时候,优先是操作实例的属性,另外,当实例没有和类同名的时候,通过实例对象,不可以修改类属性,通过实例方法修改类属性,只是给实例绑定了一个对应的实例属性
查看全部 -
类属性也是可以动态添加和修改的,需要注意的是,因为类属性只有一份,所以改变了,所有实例可以访问到的类属性都会变更
def与引用函数差不多有什么都需要执行的操作可以直接在def __init__(self,name,age):里写
查看全部 -
实例属性每个实例各自拥有,互相独立
类属性有且只有一份
查看全部 -
def后面必须要有空格然后是两个下划线,然后是init然后又是两个下划线
查看全部 -
class Animal(object):
def __init__(self,name,age):
self.name=name
self.age=age
#pass
dog=Animal('bob',5)
cat=Animal('ketty',8)
print(dog.name)
print(cat.name)
对
class Animal(object):
def __init__(self,name,age):
self.name=name
self.age=age
#pass
dog=Animal('bob',5)
cat=Animal('ketty',8)
print(dog.name)
print(cat.name)
不对
查看全部 -
# Enter a code
# coding:utf-8
class Person(object):
def __init__(self,name,gender):
self.name = name
self.gender = gender
# 定义student类
class Student(Person):
def __init__(self,name,gender,score):
super(Student,self).__init__(name,gender)
self.score = score
# 定义teacher类
class Teacher(Person):
def __init__(self,name,gender,subject):
super(Teacher,self).__init__(name,gender)
self.subject = subject
teacher = Teacher('xiaoming','female',34)
print(teacher.name)
查看全部 -
# Enter a code
class animal(object):
__count = 0
def __init__(self,name,age):
self.name = name
self.age = age
# set_count函数相当于引用了类的引用
@classmethod
def set_count(cls,location):
cls.__count = count
# 这一步是获得类的私有属性值
@classmethod
def get_count(cls):
return cls.__count
dog = animal('xiaoming',12)
animal.set_count = 14
print(animal.get_count())
查看全部 -
为了操作实例对象的私有属性,我们定义了实例方法;同样的,如果需要需要操作类的私有属性,则应该定义类的方法。
默认的,在class中定义的全部是实例方法,实例方法第一个参数 self 是实例本身。
要在class中定义类方法,需要这么写:class Animal(object): __localtion = 'Asia' def __init__(self, name, age): self.name = name self.age = age @classmethod def set_localtion(cls, localtion): cls.__localtion = localtion @classmethod def get_localtion(cls): return cls.__localtion print(Animal.get_localtion()) # ==> Asia Animal.set_localtion('Afica') print(Animal.get_localtion()) # ==> Africa
和实例方法不同的是,这里有两点需要特别注意:
类方法需要使用@classmethod来标记为类方法,否则定义的还是实例方法
类方法的第一个参数将传入类本身,通常将参数名命名为 cls,上面的 cls.__localtion 实际上相当于Animal.__localtion。
因为是在类上调用,而非实例上调用,因此类方法无法获得任何实例变量,只能获得类的引用。
查看全部 -
f = open(r'C:\Users\Administrator\Desktop\1.py',"r") print(f.read(3)) print(f.readlines(3)) print(f.readline()) f.close()
#三种方法都会导致游标移动
查看全部 -
eval()函数可以把字符串转换为等值的结果,比如eval('1+1'),得到结果为2。请使用eval实现一个简单的计算器,可以输入表达式并打印计算结果。
#eval()函数
描述
eval() 函数用来执行一个字符串表达式,并返回表达式的值。
语法
以下是 eval() 方法的语法:
eval(expression[, globals[, locals]])
参数
expression -- 表达式。
globals -- 变量作用域,全局命名空间,如果被提供,则必须是一个字典对象。
locals -- 变量作用域,局部命名空间,如果被提供,可以是任何映射对象。
返回值
返回表达式计算结果。
实例
以下展示了使用 eval() 方法的实例:
>>>x = 7>>> eval( '3 * x' )21>>> eval('pow(2,2)')4>>> eval('2 + 2')4>>> n=81>>> eval("n + 4")85
查看全部 -
https://blog.csdn.net/weixin_33841503/article/details/93488771
查看全部 -
p = Person('Tim', 'Male') s = Student('Bob', 'Male', 88) t = Teacher('Alice', 'Female', 'English')
当我们拿到变量 p、s、t 时,可以使用 isinstance 判断类型:
>>> isinstance(p, Person) True # p是Person类型 >>> isinstance(p, Student) False # p不是Student类型 >>> isinstance(p, Teacher) False # p不是Teacher类型
这说明在继承链上,一个父类的实例不能是子类类型,因为子类比父类多了一些属性和方法。
我们再考察 s:>>> isinstance(s, Person) True # s是Person类型 >>> isinstance(s, Student) True # s是Student类型 >>> isinstance(s, Teacher) False # s不是Teacher类型
#用isinstance判断数据类型,
查看全部 -
super().__init__(name,gender)#注意super()括号中的参数设定
- uper(Teacher,self).__init__(name,gender)
查看全部 - uper(Teacher,self).__init__(name,gender)
-
义了类之后,就可以对类进行实例化了,实例化是指,把抽象的类,赋予实物的过程。比如,定义好Person这个类后,就可以实例化多个Person出来了。
创建实例使用类名+(),类似函数调用的形式创建查看全部
举报